代码:
#include <iostream>
void main()
{
char buffer[4] = "abc";
char *pc;
pc = "hello";
cout<<pc<<endl;
pc++;
cout<<pc<<endl;
cout<<*pc<<endl;
pc = buffer;
cout<<pc;
}
buffer是字符数组,初始化为“abc”,buffer[3] = '/0'.
pc是字符指针,定义时分配变量空间但未初始化。之后将字符串常量“hello”赋值给pc。由于字符串常量是地址,所以语句pc = "hello";是合法的。pc实际上指向“hello”中的首字符'h'。当pc++时,pc就指向这个字符串中的第二个字符'e'。
另外输出字符指针就是输出字符串,所以语句cout<<pc<<endl;也是合法的。输出字符指针的间接引用就是输出单个字符。
因此在对字符指针进行输出的时候,可以使用输出指针快速输出整个字符数组中的内容。