char *s1[]="abcde";
char *p = s1 ;
cout<<p<<endl; // 输出abcde
cout<<*p<<endl; // 输出a
p
是一个指向字符的常量指针,它指向了字符数组s
的首地址。当你使用
cout << p << endl;
尝试输出p
时,cout
会尝试输出以p
为起始地址的字符序列,直到遇到空字符(\0
)为止,因为C++中以空字符结尾的字符序列被视为字符串。
p
所指向的字符数组s
初始值为"shafj"
,所以输出将会是从s
的起始地址开始的字符序列,直到遇到第一个空字符为止。因此,输出结果将会是
s
中包含的字符串"shafj"
。
如果你想输出
p
所指向的字符,而不是字符串,你可以使用*p
来访问p
所指向的字符,并通过cout
输出它。例如:cout << *p << endl;
这将输出
p
所指向的字符,即字符数组s
的第一个字符's'