sizeof(sz)\sizeof(int)//这是求数组sz的长度吗?为什么

来源:百度知道 编辑:UC知道 时间:2024/06/26 03:28:39

sizeof();
代表的是求参数再内存中所占的字节数。

sizeof(sz)//代表变量sz所占的字节。
如果sz是:
byte类型 1字节
short类型 2字节
int类型 2字节(16位)4字节(32位)
long类型 4字节(vc++)2字节(java)
float类型 4字节
double类型 8字节
char类型 2字节(中文)1字节(英文字母)
bool类型 1字节
数组类型 数组长度+\0(数组长度+1个字节)
指针类型 4字节

sizeof(int)//代表int类型在内存中所占的字节数。16位系统:2字节。32位系统:4字节。

希望能对你有所帮助。

int a[10];
sizeof(a)是整个数组的长度,是40;
sizeof(a[0])或者sizeof(*a)是元素a[0]的大小,是4;
sizeof(a)/sizeof(*a)是数组a的元素个数 是10;

应该说是的。
sizeof(sz)求出的是这个变量sz实际所占用的字节数。
sizeof(数据类型)表示这种数据类型所占用的字节数。

用变量sz实际所占用的字节数,除以这种数据类型所占用的字节数,
就等于这个数组sz的长度。

需要注意的是:这种东西不能使用在函数的传入参数上。因为数组在
传入函数的过程中,会自动被转换成指针类型,在32位机上任何类型指针都是
四个字节。如果这时这样使用就会出错的,你会发现它永远都是1。