用32位int型變量表示單引號(hào)括起來的四個(gè)字符的深入探討
// 字符c的16進(jìn)制值是0x63,字符o的16進(jìn)制值是0x6f,
// 字符n的16進(jìn)制值是0x6e
int what = 'conn';
printf("The address of what is 0x%x \n", &what);
printf("what 0x%x \n", what);
if (what == 0x636f6e6e) {
printf("what is 0x636f6e6e \n");
}
char *p = "conn";
printf("p points to [%s] \n", p);
while (*p != 0) {
printf("%x", *p);
p++;
}
運(yùn)行結(jié)果如下:
The address of what is 0x12ff60
what 0x636f6e6e
what is 0x636f6e6e
p points to [conn]
636f6e6e
也就是說字符'conn'的值用16進(jìn)制表示就是0x636f6e6e,兩者是等價(jià)的。
在Android的framework層用到了這種方法來表示message的值。
其中'conn'的存儲(chǔ)方式是小端存儲(chǔ)。
即:小端:較高的有效字節(jié)存放在較高的的存儲(chǔ)器地址,較低的有效字節(jié)存放在較低的存儲(chǔ)器地址可以直接查看內(nèi)存中'conn'的存儲(chǔ)方式是小端存儲(chǔ),
地址從低到高依次是:0x12ff60,0x12ff61,0x12ff62,0x12ff63。
存儲(chǔ)的字符依次是:n, n, o, c
最后一個(gè)n存在最低位,c存在最高位。
相關(guān)文章
運(yùn)用指針在不用加號(hào)的情況進(jìn)行加法運(yùn)算的講解
今天小編就為大家分享一篇關(guān)于運(yùn)用指針在不用加號(hào)的情況進(jìn)行加法運(yùn)算的講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-01-01

