当前位置: 代码迷 >> C语言 >> [求助]为什么输出的不是地址
  详细解决方案

[求助]为什么输出的不是地址

热度:104   发布时间:2006-04-22 16:28:00.0
我同意楼上的
----------------解决方案--------------------------------------------------------

如果想输出b的地址只要这样就行啊,

#include <conio.h> /* 此头函数请不要删除 */
#include <stdio.h>
main()
{ int a=511,*b=&a;
printf("%d\n",b);
getch(); /* 此语句请不要删除*/
}


----------------解决方案--------------------------------------------------------
a=511,*b=&a;

b == a的地址:
*b == a的值:
&a == a的地址:
a == a的值,

所以,b == &a
*b == a


----------------解决方案--------------------------------------------------------
回复:(wzl520)[求助]为什么输出的不是地址
以下是引用wzl520在2006-4-18 10:51:00的发言:
#include <conio.h> /* 此头函数请不要删除 */
#include <stdio.h>
main()
{ int a=511,*b=&a;
printf("%d\n",*b);
getch(); /* 此语句请不要删除*/
}
这个答案为什么不是a的地址而是a的值啊

兄弟您问到点子上啦。这是初学指针的人易犯的第一个迷糊。且听我细说缘由:

开创C的人过于聪明,他喜欢“两步并作一步”走。因此出现

[auto] int x=10; //其实应理解为 { int x; x=10; }

int a=511, *b=&a; //等价于:{ int a,*b; a=511; b=&a; }


----------------解决方案--------------------------------------------------------

三个字:初始化

不许再讨论了


----------------解决方案--------------------------------------------------------
  相关解决方案