重温了C风格字符串,有几个问题纠结以一下。
1.字符串字面值"c"不是自动在末尾增加一个null,为什么赋值给 string对象的时候 他的长度不是2;程序代码:
#include<iostream> #include<cstring> #include<string> using namespace std; int main(){ string s="c"; cout<<s.size(); return 0; }
2.数组的名字即是指向数组的第一个元素的指针;
但是当
int shu[]={1,2,3};
cout<<shu; 是错误的
cout<<*shu; 输出1;
当
int ca[]="c++";
cout<<ca; 是正确的 且输出 c++ (这是为什么 ,跟int型不一样,切最后自动添加的null为什么没有输出)
cout<<*ca; 输出c