c++ sizeof和strlen
1 #include <iostream> 2 #include <cstring> 3 4 int main() 5 { 6 char *str1 = "happy"; 7 //64位系统,返回的是指针的大小(指针占8字节) 8 std::cout << str1 << "-sizeof:" << sizeof(str1) << std::endl; 9 //返回真实的字符串的大小 10 std::cout << str1 << "-strlen:" << strlen(str1) << std::endl; 11 12 char str2[] = "Sunday"; 13 //计算字符串数组的结果是真是的字符数组的大小 14 std::cout << str2 << "-sizeof:" << sizeof(str2) << std::endl; 15 //返回真实的字符串的大小 16 std::cout << str2 << "-strlen:" << strlen(str2) << std::endl; 17 18 char str3[12] = "Sunday1"; 19 //计算字符串数组的结果是真是的字符数组的大小 20 std::cout << str3 << "-sizeof:" << sizeof(str3) << std::endl; 21 //返回真实的字符串的大小 22 std::cout << str3 << "-strlen:" << strlen(str3) << std::endl; 23 24 //sizeof 在编译时计算好,返回编译器为其分配的数组空间大小,不关心里面存了多少数据 25 //strlen 参数必须是字符型指针,且只关心存储的数据内容,不关心空间的大小和类型 26 }
结果: