【发布时间】:2014-02-11 03:20:30
【问题描述】:
我对这段代码如何打印它在 C 中的作用感到困惑。
#include <stdio.h>
void print_elements(int i) {
int j;
short arr[3] = {0x01,0x02,0x03};
char * ptr = (char *)arr;
for(j=0;j<=i;j++){
printf("\n %x,", *(ptr+j));
}
}
main() {
print_elements(4);
}
打印出来:
1,
0,
2,
0,
3,
为什么输出是这样的?
一些可能有用的信息:
- 字节顺序是小端序
- 数组arr的第一个元素的地址是0x00
- 短是 2 个字节
【问题讨论】: