关于c语言中的定义int类型的常量
inta=0x12345678int可以单独这样定义吗?inta=0x12345678;charb;b=(((unsignedchar*)&(a))[0]);//另外麻烦...
int a = 0x12345678
int可以单独这样定义吗?
int a =0x12345678;
char b;
b = (((unsigned char *)&(a))[0]); // 另外麻烦帮我解释下这句的意思和关系。 展开
int可以单独这样定义吗?
int a =0x12345678;
char b;
b = (((unsigned char *)&(a))[0]); // 另外麻烦帮我解释下这句的意思和关系。 展开
5个回答
展开全部
可以这样定义 但行尾必须加分号。
不过你这样定义的是变量 并不是常量
要定义常量可以写为
const int a = 0x12345678;
或者直接用宏定义
#define CONST_A 0x12345678
PS:宏定义时无需加分号
int a =0x12345678;//定义一个变量a 并赋值为0x12345678. 这时会给a分配一个sizeof(int)的空间,一般为4
char b; //定义字符变量b
b = (((unsigned char *)&(a))[0]);
//这个需要分几步来理解
//&(a)取a的地址
//((unsigned char *)&(a)) 把它转换成无符号字符型指针
//这个指针是指向a的首地址的 所以 这个无符号字符型指针指向的区域就有和a同样的值
//即四个字节,分别为0x12 0x34 0x56 0x78
//((unsigned char *)&(a))[0] 取第一个值 即0x12
//所以最终b的值为0x12
展开全部
可以,这是给a赋一个十六进制的值。
第二句要这么分析,先看括号里的
那么就是将a取其地址后强制转换成无符号char指针,然后把这个指针指向的地址的第一个char值赋给b。
也就是假如a占四个字节,b取它的第一个字节的值
第二句要这么分析,先看括号里的
那么就是将a取其地址后强制转换成无符号char指针,然后把这个指针指向的地址的第一个char值赋给b。
也就是假如a占四个字节,b取它的第一个字节的值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以这样定义
int a =0x12345678;表示a的值为十六进制的12345678
b = (((unsigned char *)&(a))[0]);
将a的内存地址指针转换为unsigned char *,并取第0号元素值
int a =0x12345678;表示a的值为十六进制的12345678
b = (((unsigned char *)&(a))[0]);
将a的内存地址指针转换为unsigned char *,并取第0号元素值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以 0x代表16进制,但是你写的0x12345678超过了int大小范围,必须改小才能正常使用。
b = (((unsigned char *)&(a))[0]);
unsigned char*是无符号字符指针型,在这里对把数组a用&取地址,强制转换成了unsigned char*,然后对它进行取第一个数,就相当于取出a数组第一个数通过ascii码转换成字符保存在b中,
例如
int a[2]={65,68};
char b;
b = (((unsigned char *)&(a))[0]);
printf("%c",b);
输出就会是A,因为65是A的ascii码
b = (((unsigned char *)&(a))[0]);
unsigned char*是无符号字符指针型,在这里对把数组a用&取地址,强制转换成了unsigned char*,然后对它进行取第一个数,就相当于取出a数组第一个数通过ascii码转换成字符保存在b中,
例如
int a[2]={65,68};
char b;
b = (((unsigned char *)&(a))[0]);
printf("%c",b);
输出就会是A,因为65是A的ascii码
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、定义常量可以写为
const int a = 0x12345678;
或者直接用宏定义
#define CONST_A 0x12345678
2、常量整体上分两类,一类是整型常量,一类是浮点型常量。细致上分,整型常量还包括字符常量、字符串常量。
①. 整型常量 如6,27,-299
②. 浮点型常量 如5.43,-2.3,5.43F(单精度)、2.3f(小写的f也可以)
③. 字符常量 如‘6’,‘a’,L'中'(宽字符常量)
④. 字符串常量 如“6”,“男”,“nanabc”
const int a = 0x12345678;
或者直接用宏定义
#define CONST_A 0x12345678
2、常量整体上分两类,一类是整型常量,一类是浮点型常量。细致上分,整型常量还包括字符常量、字符串常量。
①. 整型常量 如6,27,-299
②. 浮点型常量 如5.43,-2.3,5.43F(单精度)、2.3f(小写的f也可以)
③. 字符常量 如‘6’,‘a’,L'中'(宽字符常量)
④. 字符串常量 如“6”,“男”,“nanabc”
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询