枚举类型指针(枚举类型和指针的长度!)
本文目录
- 枚举类型和指针的长度!
- 请问C中的枚举类型里面可以放指针变量吗如果可以 怎么表示呢
- C++的枚举类型变量的列表元素的值不能被改变,类似const但为什么可以透过指针改变
- 使用Enum定义枚举类型
- 枚举、指针和数组有什么区别
- C++枚举类型
枚举类型和指针的长度!
指针就是地址,位数与CPU的地址总线位数一样,CPU多少位,地址总线就是多少位,简单说就CPU多少位,指针就多少位。
对于枚举类型,实际它是不占内存的,当编译时,直接用相应的常量内存替换。
struct a
{
int a;
int b;
enum max{aa=100}
};
去掉和不去掉是一样的
请问C中的枚举类型里面可以放指针变量吗如果可以 怎么表示呢
枚举变量中花括号里的名字是编译者自己定义的,不是变量哦~它们只是一些整形数,是不可改变的。
比如enum{a,b,c}。a,b,c对应的值是0,1,2。
当然,也可以对它们初始化,比如enum{a=3,b,c,d=7,e}。a,b,c,d,e对应的值为3,4,5,7,8。(注意:值不能重复!)
既然不是变量,当然不能放指针变量啦~
要注意的是,花括号里可以随便写,但不能用整形数!
C++的枚举类型变量的列表元素的值不能被改变,类似const但为什么可以透过指针改变
枚举量本来就无法改变啊,你这个代码会编译错误的。
第二行中 int *p=&two 右边就是一个错误的表达式。我在这里讲一下:
two是枚举array中的一个常量,而不是用于识别或定位一个存储位置的标识符,所以 &two 其实就是&2,你总不能取一个常量(注意这里不是指const的那种定义的常量)的地址吧,所以这个代码时错误的。
使用Enum定义枚举类型
如下:
定义public enum UseType{
}
后面应该有个分号。
static final通常跟的是一个int类型的常数,所以有时候可以用int型代替枚举。在有些时候需要输出这个枚举量的名字(比如January),上面的方法输出的是int值,用类的话可以把名字一起输出。总的来说前者消耗资源比较少,后者更符合枚举的定义。
介绍
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。
Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
枚举、指针和数组有什么区别
枚举和另外两个是没多大关系的,枚举的使用,目的在于使程序更加好理解。
enum exp{
ACTION_1 = 1,
ACTION_2 = 2,
ACTION_3 = 3,
...
}
这么写,只是为了让程序更加易懂,你直接在code里写1,2,3,也完全没错,计算机是无所谓的,但是看的人要蛋疼无比了。人家看到ACTION_1,就知道这里是要这样做,其实对于计算机,那里就是1.
至于指针和数组,关系就很大了。
但是指针比数组更灵活,因为它是一个变量。数组其实也是指针,但是是一个常量指针。
比如,int *p arr;
p = NULL;
P= 0x00012345;
p = arr;
对于p你可以这么操作。
但是arr,你只能
arr,arr,即用里面的值,但是你不能arr = p,这是错的,因为数组名是一个常量指针。
C++枚举类型
函数本身是要求返回枚举类型的,怎么能返回string呢?这一般会报错的,也许某些编译器不会,但至于返回什么,就看那个不报错的编译器怎么处理了。如果是返回枚举类型,那他不是返回一个完整的字符串,而只是返回你定义的枚举类型中那个字符串的值。
更多文章:
nvidia geforce 410m(nvidia geforce 410M 是独显吗)
2024年7月28日 17:36