把字符串赋给一个指针变量,即是把字符串的首地址赋给该指针变量。
char *p="hello";
那么当我们输出p时,是不是输出地址呢?不是。请看下面四种情况:
printf("%s\n",p);//输出结果是hello
printf("%s\n",*p);
//运行出错。“0x00401a8c”指令引用的“0x00000043”内存。该内存不能为“read”.
cout<<p<<endl;//结果是hello
cout<<*p<<endl;//结果是h
既然p保存的是地址,为什么cout<<p; 输出的不是地址呢?
cout<<p<<endl=printf("%s",p),
cout<<*p<<endl=printf("%c",*p)
这样能理解吗?