标签:c/c++ size ret 初始化 hello and char c99 turn
1. C/C++中每个字符串都以‘\0‘作为结尾,这样我们就能很方便找到字符串的最后结尾。
1 char str[10]; 2 strcpy(str,"0123456789"); //错误:数组越界。"0123456789"的实际长度为11个字节
注意:谨记字符串末尾的空字符,防止数组越界。
2. C/C++把常量字符串放到单独的一个内存区域
为了节省内存,C/C++把常量字符串单独放到单独的一个内存区域。当几个指针赋值给相同的常量字符串时,它们实际上会指向相同的内存地址。但用常量内存初始化数组,情况却有所不同。
1 int main(int argc,char *argv[]) 2 { 3 char str1[]="hello world"; 4 char str2[]="hello world"; 5 6 char *str3="hello world"; 7 char *str4="hello world"; 8 9 if(str1==str2) 10 cout<<"str1 and str2 are same\n"; 11 else 12 cout<<"str1 and str2 are not same\n"; 13 14 if(str3==str4) 15 cout<<"str3 and str4 are same\m"; 16 else 17 cout<<"str3 and str4 are not same\n"; 18 19 return 0; 20 } 21 //输出: 22 //str1 and str2 are not same 23 //str3 and str4 are same
标签:c/c++ size ret 初始化 hello and char c99 turn
原文地址:http://www.cnblogs.com/cygalaxy/p/7231165.html