问题描述:众所周知,sizeof可以取变量所用内存空间大小。sizeof(数组)时返回的是数组元素的数量,那当我们用指针数组时,能通过sizeof来获取指针数组中元素的数量吗。
先查阅官方C++的docs,
依照文档写测试例程
比如:
char *str="hello world"; printf("%d",sizeof(str));
返回值为4,即指针的大小
这样操作呢?
char *str="hello world"; printf("%d",sizeof(*str));
发现返回值为1,即一个char字符型的空间大小。
总结:不能通过sizeof来取指针数组中的元素个数。sizeof指针变量,只能得到指针指向的头个元素内存大小或是指针的大小(为4)