首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

简单的指针,但小弟我没搞懂

2012-12-14 
简单的指针,但我没搞懂。main(){int a[10]{1,2,3,4,5,6,7,8,9,0},*ppaprintf(%x\n,p)printf(%x\n,

简单的指针,但我没搞懂。

main()
{
int a[10]={1,2,3,4,5,6,7,8,9,0},*p;
p=a;
printf("%x\n",p);
printf("%x\n",p+9);

如果第一个printf输出是194,那么第二个printf输出是多少。
第一个输出怎么会是194呢,没看懂,谁看懂了,说一说。
[最优解释]
输出的是p的地址,p+9的话,则是p的地址加9,p是int型的,即194+9*sizeof(int) = 194 + 36 = 230
[其他解释]
printf("%x\n",p);你打印出来的是p本身的地址,并不是p所指向的值。应该是printf("%x\n",*p)
[其他解释]
数组名代表数组第一个元素的地址,即a是a[1]的地址,p=a,指针p指向a[1]的地址,a[1]被分配的地址是194,p就是194了
[其他解释]
输出的是p的地址,p+9的话,则是p的地址加9,p是int型的,即196+9*sizeof(int) = 230
[其他解释]
http://pan.baidu.com/share/link?shareid=144862&uk=2718858870
好好看看这个,把指针类型,指针所指类型,指针指向哪里搞明白了,你的问题也就解决了
[其他解释]
引用:
数组名代表数组第一个元素的地址,即a是a[1]的地址,p=a,指针p指向a[1]的地址,a[1]被分配的地址是194,p就是194了
应该是a[0]的地址吧?
[其他解释]
引用:
引用:数组名代表数组第一个元素的地址,即a是a[1]的地址,p=a,指针p指向a[1]的地址,a[1]被分配的地址是194,p就是194了应该是a[0]的地址吧?
对,写错了!

热点排行