关于sizeof()函数的介绍,百度百科介绍如下:
其核心功能就是判断数据类型长度符,先通过一个实际例子看一下。
通过上面的例子可以看到字符型和无符号字符型长度为都是1,整形和无符号整形长度都为2。字符数组cs的长度为8,其中字符长度为7加上结束符,共占8个字节。字符串指针pcs长度为3。后面的x9、x12、x16这三个都是指针,长度都是3,虽然x16是整形,x9、x12是字符型,但是在单片机内部依然都占用的3个字节的内存。x11占用了9个字节,x11是指针数组,其中里面总共有3个指针。说明一个指针也是占用3个字节。
这就说明了,指针变量的sizeof值与指针所指的对象没有任何关系,所有的指针变量所占内存大小相等。
通过x13也可以看出,数组的sizeof值等于数组所占用的内存字节数,和数组中存储的内容大小没有关系。所以在计算数组is中数组个数时,可以写成
len = sizeof(is)/sizeof(int);
也可以写成
len = sizeof(is)/sizeof(is[0]);
用数组所有元素所占空间大小除以一个元素所占字节大小。
下面借用百度百科中的一句话来总结一下sizeof()的用法。