Com*_*rit 3 c pointers dereference
#include <stdio.h>
int main() {
int a = 320;
char *ptr;
ptr = (char *)&a;
printf("%d", *ptr);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我期望输出是,320但是我得到了64。这是什么原因呢?
如果您的系统CHAR_BIT是8(可能是这种情况),那么在解引用的char *指针中最多可获得8位。在二进制中,值320是0b000101000000。
看来您的系统使用的是低端字节序。320的最低有效8位是0b01000000,以10为底的64位。
| 归档时间: |
|
| 查看次数: |
88 次 |
| 最近记录: |