关键字sizeof

关键字sizeof
其作用是取得一个对象(数据类型或数据对象)所占用内存的大小(一字节为单位)其中类型包括基本数据类型(不包括void)、用户自定义类型,(结构体、类)、函数类型。数据对象是指前面提到的类型的定义的普通变量和指针变量(包含void指针)。对象对sizeof()的处理都是在编译阶段处理的。Sizeof在计算变量大小时,括号可以省略,而在计算类型大小时,括号不可以省略。
Sizeof(int)*p表示计算指向整型的指针变量p所占的字节数
Sizeof是运算符,不是函数;
Sizeof不能求void类型的长度;
Sizeof能求void类型的指针的长度
指针也是变量,只不过这个变量很特殊,它是存放其他变量地址的变量,目前32位计算机平台下的指针变量大小为4;
Sizeof能求静态分配内存的数组的长度
注意:用sizeof求字符串的长度时要加上末尾的‘\0’,而strlen求字符串长度时不包括‘\0’;
Sizeof不能求动态分配的内存的大小
Sizeof不能对不完整的数组求长度,否则会编译出错
当表达式作为sizeof的操作数时,它返回的是表达式计算结果的类型大小,但他不对表达式求值
Sizeof可以对函数调用求大小,并且求得的大小等于返回类型(函数类型的大小),但不执行函数体
Sizeof求得的结构体(及其对象)的大小并不等于各个数据成员对象的大小之和,而根据结构体的内存分配规则求得大小。
Sizeof不能用于求结构体的位域成员大小,但是可以求得包含位域成员的结构体大小。

猜你喜欢

转载自blog.csdn.net/wjh814/article/details/79455086