int a = 0x12345678
int可以单独这样定义吗?
int a =0x12345678;
char b;
b = (((unsigned char *)&(a))[0]); // 另外麻烦帮我解释下这句的意思和关系。
å¯ä»¥è¿æ ·å®ä¹ ä½è¡å°¾å¿ é¡»å åå·ã
ä¸è¿ä½ è¿æ ·å®ä¹çæ¯åé 并ä¸æ¯å¸¸é
è¦å®ä¹å¸¸éå¯ä»¥å为
const int a = 0x12345678;
æè ç´æ¥ç¨å®å®ä¹
#define CONST_A 0x12345678
PS:å®å®ä¹æ¶æ éå åå·
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
温馨提示:答案为网友推荐,仅供参考
第1个回答 2014-12-20
可以,这是给a赋一个十六进制的值。
第二句要这么分析,先看括号里的
那么就是将a取其地址后强制转换成无符号char指针,然后把这个指针指向的地址的第一个char值赋给b。
也就是假如a占四个字节,b取它的第一个字节的值
第二句要这么分析,先看括号里的
那么就是将a取其地址后强制转换成无符号char指针,然后把这个指针指向的地址的第一个char值赋给b。
也就是假如a占四个字节,b取它的第一个字节的值
第2个回答 2014-12-20
可以这样定义
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号元素值
第3个回答 2014-12-20
可以 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码
第4个回答 推荐于2017-10-07
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”