关于c风格字符串的一点问题
- C/C++ code
#include <iostream>using namespace std;int main(){ char *szStr = "abcde"; cout<<szStr<<endl;//输出字符串 szStr += 2; cout<<szStr<<endl;//输出cde cout<<(long)szStr<<endl;//输出地址的十进制表示 cout<<*szStr<<endl;//输出a cout<<&szStr<<endl;//输出a的十六进制格式地址 return 0;}
szStr不是一个指针吗,cout<<szStr<<endl; 为什么不是输出指针值(也就是字符串首字符的地址)
[解决办法]
cout<<szStr<<endl;//输出字符串
这个问题是cout<< 作怪, operator<<(cout,参数)
参数是字符串指针,就输出它所指的内容
operator<<(cout,int)
输出整形