2017单身交友微信群:又是C语言问题,帮帮忙!!

来源:百度文库 编辑:神马品牌网 时间:2024/05/02 10:01:27
以下程序若第一个printf语句输出的是194,则第二个printf输出的是()
A.0212 B.204 C.1a4 D.1a6
main()
{ int a[]={1,2,3,4,5,6,7,8,9,0}, *p;
p=a;
printf("%x\n",p);
printf("%x\n",p+9);
}
书上就是这么写的阿,难道书上错了。嘿嘿,我也看不明白阿。

如果int按2个字节算, 答案是 194+2×9
如果int按4个字节算, 答案是 194+4×9

%x 求的是地址
如果p的地址已知, 那么p+n的地址就是p的地址加上n个元素所占字节大小的地址的和

注意, 一般计算机中的地址表示形式是16进制的, 我的程序显示结果

p = 22f58
p+9 = 22f7c

我的机器每个int占4个字节

你的问题就有问题,第一个是不会输出194的.