一道C语言数组的题,求C高手帮忙

#include<stdio.h>main(){inta[]={1,2,3,4,5,6,7,8,9,0},*p;p=a;printf(“%x\n”,p);printf(“... #include <stdio.h>
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个字节,第一个printf语句输出的是194,则第二个printf语句的输出结果是多少?
最好给出解题步骤,谢谢啦
展开
 我来答
Clor001
2011-08-27 · TA获得超过803个赞
知道小有建树答主
回答量:399
采纳率:0%
帮助的人:379万
展开全部
#include <stdio.h>
main()
{ int a[ ]={1,2,3,4,5,6,7,8,9,0},*p; //定义了一个10个元素的数组,每个元素int类型,还定义了一个p指针.
p=a; //p指针指向数组a
printf (“%x\n”,p); //输出把p的地址以十六进制显示,
printf (“%x\n”,p+9);//p+9表示移动9个int类型的距离的地址之后换成十六进制显示,
}
如果你的确想打印地址,使用%p 格式就行了,默认是16进制表示,效果和%x一样,但是省去了部分操作。

若一个int类型的变量占2个字节,
第一个printf语句输出的是194,则第二个printf语句的输出结果是
这个题的意思是问你第一个元素到最后一个元素总共占了多少个字节
0x194 +2* 9=
自己算吧,懒得换算了。
194表示十六进制的数组首地址,一个Int类型占用2个字节,那么移动9个元素的距离就是2*9个字节,然后显示地址就是了。
这个深入到内存里类型的表示格式,你记住+1表示移动一个元素类型的距离就行了。
在文化街读莎士比亚的萤石
2022-01-27
知道答主
回答量:2
采纳率:0%
帮助的人:767
展开全部
注意这里的%x输出格式是十六进制,首地址增加9,相当于移动了18个字节,18转为十六进制就是ox12。ox194+ox12=ox(1(9+1)6),十六进制中a为10,故最终结果为1a6。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a705ceb
2011-08-27 · TA获得超过263个赞
知道小有建树答主
回答量:285
采纳率:0%
帮助的人:273万
展开全部
194 + 2 * 9 = 212
追问
能帮忙给出思路或者步骤么?谢谢啦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-08-27
展开全部
0x194+0x12=0x1a6
追问
那个....我是c菜鸟,能给出解题的思路或者步骤么?谢谢啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式