注册 登录
编程论坛 C++教室

指针问题

weilin010 发布于 2007-03-22 09:00, 474 次点击

char*a="hello";
char*b;
b=a;
cout<<&a<<" "<<&(*b);
getchar();
return 0;
初学,有个问题弄不名白:
大家谁能解释一下为什么&a输出1245064而&(*b)输出hello啊!
谢了.

4 回复
#2
wfpb2007-03-22 09:40

a是指针,但他本身也是一个变量,&a是a的地址.
*b是'h',&(*b)是h的地址,也就是b的值,cout<<&(*b);等价于cout<<b;
你可能是不小心看错了。

#3
weilin0102007-04-05 08:29

这个问题我也问过别人,他也是说cout<<&(*b);等价于cout<<b;
但是他解释的我没听懂...
他告诉我如果编程就不去管它了!
没有用.
总之谢谢你了!

#4
wfpb2007-04-05 10:02
cout<<&(*b);等价于cout<<b;
因为
char a='a';
char *b=&a;
b是一个指针,指向一个物理地址(&a)
*b就代表那个地址的值a。
&(*b)就是&a.
而b==&a;
所以&(*b)就是b.
#5
weilin0102007-04-13 10:50

明白了
谢谢了!!!

1