这个是怎么加的呀,可以详细解释一下嘛,16进制

下程序中若第一个printf语句输出的是194,则第二个printf语句的输出结果是 

 

main() {int a[]={1,2,3,4,5,6,7,8,9,0}; 

 

printf("%x\n",a); 

 

printf("%x\n",a+9); } 

16进制是咋加的呀

printf("%x\n",a);  ,这里输出的是数组a[]的首地址,也就是元素1的地址值&a[0]。printf("%x\n",a+9);  ,a+9,a表示的是数组a[]的首地址 &a[0], a+9 = &a[9] ,就是数组里第10个元素的地址。16进制的加法和10进制原理是一样的,16进制逢16进一,194 + 9 = 19D,16进制:0 1 2 3 4 5 6 7 8 9 A B C D E F(10进制:0--15) 。 

= =为什么我刚刚试了一下发现不太对...

你的这个函数a是一个数组名,也就是一个地址,你第一个输出应该是a的地址叭...