一道关于C语言数组的题,答案1a6是怎么算出来的呢?
#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);
return 0;
}
若一个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);
return 0;
}
若一个int类型的变量占2个字节,第一个printf语句输出的是194,则第二个printf语句输出的结果是 展开
1个回答
展开全部
十六进制。
p+9,下标加9,每个int型大小搜弊是2字节,因此p+9比p大没芦18
第一个printf打印的194是十六进制,换算成十进制是404,加18得422,
第二个printf的格式符%x打印的也是小写的十六进制,422换算成十六进世察族制是0x1A6,因此打印的是1a6。
p+9,下标加9,每个int型大小搜弊是2字节,因此p+9比p大没芦18
第一个printf打印的194是十六进制,换算成十进制是404,加18得422,
第二个printf的格式符%x打印的也是小写的十六进制,422换算成十六进世察族制是0x1A6,因此打印的是1a6。
更多追问追答
追问
为什么还要换算成十进制呢?
追答
是考虑说的清楚。如果直接按照十六进制运算的话,十进制18就是十六进制的12,194+12=1a6。如果LZ能弄懂十六进制运算的话。
换算是换种表达方式,不管如何换算,数值还是那个数值,10公斤和10000克是一样的重量。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询