一道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语句的输出结果是多少?
最好给出解题步骤,谢谢啦 展开
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语句的输出结果是多少?
最好给出解题步骤,谢谢啦 展开
4个回答
展开全部
#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表示移动一个元素类型的距离就行了。
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表示移动一个元素类型的距离就行了。
展开全部
注意这里的%x输出格式是十六进制,首地址增加9,相当于移动了18个字节,18转为十六进制就是ox12。ox194+ox12=ox(1(9+1)6),十六进制中a为10,故最终结果为1a6。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
194 + 2 * 9 = 212
追问
能帮忙给出思路或者步骤么?谢谢啦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-08-27
展开全部
0x194+0x12=0x1a6
追问
那个....我是c菜鸟,能给出解题的思路或者步骤么?谢谢啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询