为什么我用sizeof(str)/sizeof(str[0])算出来结果都是8,无论这个字符串的长度是多少结果都是8。
sizeof计算对象的大小是转换成对象类型的计算,也就是说,同种类型的不同对象其sizeof值都是一致的。
所以sizeof(str[])相当于sizeof(char)=1
另一个sizeof(str)相当于sizeof(char *),对于这种指针类型,在32位计算机中,一个指针变量的返回值通常是4(注意结果是以字节为单位),在64位系统中指针变量的sizeof通常为8,所以当你的系统是64位时,sizeof(str)=sizeof(char *)=8
如: