const char * str_p= "hello"
cout<<sizeof (str_p); ---------什么结果?
习惯指针大小为4了,刚才在新机器上突然显示个8很不习惯。想了半天才意识到是64位机器和32位机器的区别。第一次意识到指针大小是和机器有关的。
关于sizeof其实满有意思的。
char str_arr []="hello"
cout<<sizeof(str_arr); ----------什么结果?
这里是6(字符数组末尾自动加上'\0')
因为sizeof(x)的本质是求x这个类型的字节数,想明白这点,之前的结果就都明白了。
str_p类型是const char*,指向字符串常量首地址,大小当然是4(32位机器)或8(64位机器)
str_arr的类型本质上是const char[6],所以大小就是6。