分类: LINUX
2009-10-04 00:56:42
int main()
{
int a=10;
int *p=&a;
cout<
cout<<&p<
char s='a';
//char *q=&s;
char *q="hello";
cout<cout<<*q<
这个程序的输出是:
a的地址
p的地址
q指向的字符串hello
q指向的地址中的字符h
因此,char *q=&s;
cout输出时,也是把q当成字符串向外输出的
由于字符串的结束符不知道在q指向的地址后面的什么位置
所以输出的字符串的首字符是a,但后面就不可预期了
整型指针,不会理解为字符串的,没有歧义
字符形指针,会当成字符串处理的,这也是自然而然的事情
如果你想输出地址,可以加(void*)把q强制转换一下