代碼:
#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;也是合法的。輸出字符指針的間接引用就是輸出單個字符。
因此在對字符指針進行輸出的時候,可以使用輸出指針快速輸出整個字符數組中的內容。