c语言的题目,第十八题怎么做

 我来答
金色潜鸟
2019-10-16 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5693万
展开全部
这道题的答案 应等于 0xffc2 + 9 * sizeof(int);
声明了 int 型指针*p, 初始化 *p=a; 也就是指向了 a数组的始地址 &a[0];
printf("%x\n",p); 按16进制输出了 &a[0];
printf("%x\n",p+9); 按16进制输出了 &a[0] + 9 * sizeof(int);
古老的计算机, int 型 被处理成 short int, 字长2字节,0xffc2 + 9 * sizeof(int) = 0xffc2 +18 = 0xffd4, 答案 为 B. ffd4.
MS VC++ 和 现在的大部分 计算机 int 型 被处理成 long int, 字长4字节, 输出应为0xffc2+36 = ffe6,那么待选的4个答案中 没有一个 可选啦。
追问
谢谢!懂了!但是最佳答案给错了。。没给你
夏天的小红花

2019-10-16 · TA获得超过4811个赞
知道大有可为答主
回答量:1万
采纳率:83%
帮助的人:705万
展开全部
从题目提供的答案来看,该系统采用的是16位编译器,第个int占用2字节。所以,9个int占用18个字节,其16进制表示为12h
所以,ffc2h+12h=ffd4h
选择答案B
更多追问追答
追问
为什么占用18个字节就要加12h,他不是p+9吗,地址加九。。
追答
这是因为它输出的是地址,而每个元素占用2个字节。所以a[9]的地址就是&a[0]+18=&a[0]+12h
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式