一、sizeof(), sizeof' ' , sizeof" "三种情况
sizeof():括号里面可以是数组名,也可以“abc.....”;
sizeof' ':只能是字符,当是一个字符的时候大小为1,二三四个字符时则为4,大于4个字符则编译通不过
sizeof" ":双引号里面是字符串,求出的长度是字符串 + ‘\0’ 的长度,即长度加1
二、strlen(), 和 .size()
对于string 类型,必须用.size(), 而char[] 型,则用strlen()
char a[] = {1, 2, 3};
string str = "abc"; // 长度为3printf("Array is %d\n", sizeof(a)); //是字符数组的长度,3
printf("Array is %d\n", sizeof("ab")); //是字符串ab的长度, 加上结束符,即长度是 2+1 = 3
cout<<strlen(a); // 字符数组的长度 3
cout<<str.size()<<endl; //字符串的长度3, 对于string 类型,必须用.size(), 而char[] 型,则用strlen()
//cout<<strlen(str); //报错
printf(" %d\n", sizeof"xyzmn"); //字符串的长度, 加上结束符, 即 5+1 = 6
printf("PI is %d\n", sizeof'P'); //单引号,1
printf("PI is %d\n", sizeof'PI'); //超出一个,则为4,超出4个,编译器会报错