1. sizeof是C语言的一种单目操作符,如C语言的其他操作符++、--等。它并不是函数。
sizeof操作符以字节形式给出了其操作数的存储大小。
操作数可以是一个表达式或括在括号内的类型名。操作数的存储大小由操作数的类型决定。
2. sizeof的使用举例
char str[] = “Hello”;
char *p = str;
char ss[100] = "0123456789";
int n = 10;
int intss[100] = "0123456789";
则针对上述变量分别使用sizeof的计算结果是:
sizeof (str) = 6 (str是数组名,计算到'\0'位置)
sizeof(*str) = 1(*ss是第一个字符)
sizeof (p) = 4 (p是指向字符串常量的字符指针)
sizeof(*p) = 1(*p是第一个字符)
sizeof(ss) =100 (ss表示在内存中的大小,等于100×1)
sizeof (n) = 4 (n是×××常量,32位机器上占用4字节)
sizeof(intss) = 400 (intss表示在内存中的大小,等于100×4)
特殊情况:
1. 数组作为参数传给函数时传的是指针而不是数组,传递的是数组的首地址,如:
void Func ( char str[100])
{……
}
则sizeof(str) = 4
str数组作为虚参声明时,sizeof(str)=4(指针大小)