求字节数运算符
用于计算数据类型所占的字节数(sizeof)。
一、sizeof的概念
sizeof是c语言的一种单目操作符,如c语言的其他操作符++、--等。并且它并不是一个函数,sizeof的操作符以字节的形式给出了操作数的储存大小(操作数可以是一个表达式或括号里的类型名)并其储存的大小有操作数的类型决定,和本身无关系。
二、sizeof的使用方法
1.用于数据类型
sizeof的使用形式:sizeof(char)注意数据类型必须用括号。
2.用于变量
sizeof使用形式:sizeof(a)或者 sizeof a都是正确的形式,但是大多的人都会带上括号。
* sizeof的操作符不能用于函数类型,不完全类型。不完全类型是指具有未知储存大小的数据类型,如未知储存大小的数组类型、未知内容的结构或联合类void类型、、、、
三、主要用途
1.求基本类型和复合类型所占的内存字节数
如:sizeof(int)、sizeof(int *)
2.求某个变量或者常量所占的内存字节数
如:int i;
sizeof(i)
sizeof(5)
sizeof(5L)
3.求表达式所占的内存字节数,但是不执行括号里面的表达式
如:size(i++), i的值不变
4.求静态数组所占的内存字节数,这里的数组不能是指针,就是说所定义的数组和所用的sizeof的地方是同一个函数
如:int a[10]
5.求函数返回值类型所占字节数,但是不调用函数
误区:
1.sizeof是运算符不是函数
2.用sizeof求到的是一个unsigned int 的值
3.当数组是指针的时候求到的是指针所占的内存字节数
4.不可以求void类型所占内存字节数,可以求void类型指针所占内存字节数
sizeof(void)不可以
sizeof(void *)可以
四、特点
1、sizeof是运算符,不是函数。sizeof以byte为单位返回操作数的大小。
2、sizeof不能求得 void 类型的长度。
3、sizeof能求得 voi