如果机器是 32 位 little-endianess 并且 sizeof(int) 是 4 字节。
给定以下程序:
line1: #include<stdio.h>
line2: {
line3: int arr[3]={2,3,4};
line4: char *p;
line5: p=(char*)arr;
line6: printf("%d",*p);
line7: p=p+1;
line8: printf("%d\n",*p);
line9: return 0;
}
什么是预期的输出?
A
: 2 3
B
: 2 0
C
: 1 0
D
: 垃圾值
困扰我将整数指针转换为字符指针的一件事。
选角有多重要?
编译器在第 5 行做了什么?(
p = (char *) arr;
)第 7 行发生了什么?(
p = p + 1
)如果输出是
20
那么如何0
打印出来?