一、sizeof
1、特点:sizeof是运算符,不是函数;
sizeof不能求得void类型的长度,能求得void类型的指针的长度;
sizeof能求得静态分配内存的数组的长度;
sizeof能求得静态分配内存的数组的长度;
sizeof不能求得动态分配的内存的大;
sizeof不能对不完整的数组求长度;
当表达式作为sizeof的操作数时,它返回表达式的计算结果的类型大小,但是它不对表达式求值;
sizeof可以对函数调用求大小,并且求得的大小等于返回类型的大小,但是不执行函数体;
sizeof求得的结构体(及其对象)的大小并不等于各个数据成员对象的大小之和;
sizeof不能用于求结构体的位域成员的大小,但是可以求得包含位域成员的结构体的大小。
sizeof不能对不完整的数组求长度;
当表达式作为sizeof的操作数时,它返回表达式的计算结果的类型大小,但是它不对表达式求值;
sizeof可以对函数调用求大小,并且求得的大小等于返回类型的大小,但是不执行函数体;
sizeof求得的结构体(及其对象)的大小并不等于各个数据成员对象的大小之和;
sizeof不能用于求结构体的位域成员的大小,但是可以求得包含位域成员的结构体的大小。
2、用法:用于数据类型:sizeof(type);
用于变量:sizeof(var_name)或sizeof var_name;
注意: sizeof操作符不能用于函数类型,不完全类型或位字段。不完全类型指具有未知存储大小的数据类型,如未知存储大小的数组类型、未知内容的结构或联合类型、void类型等。如sizeof(max)若此时变量max定义为int max();sizeof(char_v)若此时char_v定义为char char_v [MAX]且MAX未知;sizeof(void);size int 若此时定义int a 【sizeof(int)、sizeof(a) 、sizeof a均等价且正确】都不是正确格式。
注意: sizeof操作符不能用于函数类型,不完全类型或位字段。不完全类型指具有未知存储大小的数据类型,如未知存储大小的数组类型、未知内容的结构或联合类型、void类型等。如sizeof(max)若此时变量max定义为int max();sizeof(char_v)若此时char_v定义为char char_v [MAX]且MAX未知;sizeof(void);size int 若此时定义int a 【sizeof(int)、sizeof(a) 、sizeof a均等价且正确】都不是正确格式。
二、如何输出语句中的界限符
在所需输出界限符的对应位置插入相应的转义字符
三、混合运算类型提升规律
四、产生临时空间的情况
1、隐式类型转换;
2、建立无名对象;
3、函数返回某一对象值。
五、大小端存放
1、大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;这和我们的阅读习惯一致。
2、小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低。