字符数组,char buffer[6]="hello";char数组末尾以'\0'结束,你在定义个char数组时一定要给结束符预留空间。hello占5个字节,所以你的char数组至少要6个字节,一个要留给系统自动添加的'\0'。你也可以自己添加结束符,例如:char buffer[6]={'h','e','l','l','o','\0'};
sizeof(buffer),算出的空间是声明中声明的大小。例如,char buffer[6]="hel";sizeof(buffer)=6;初了前三个元素依次为h,e,l,其它的都填充'\0';
string
string data=".........";不管给data赋给怎样的值,sizeof(string)恒等于32。
char buffer[]与string的联用
char buffer[6] = "hello";
string data=buffer;
将字符数组赋给data,data只接受非空字符,当遇到空字符即'\0'时,就停止接受。
因此,data.length()=5.
若char buffer[6]="hel";buffer[4]='l';string data = buffer;
则data.length=3。即data在遇到空字符后就停止继续接受后面的字符了。