各变量所占字节数与操作系统位数有关:
类型 16位 32位 64位
char 1 1 1
short int 2 2 2
int 2 4 4
long int 4 4 8
long long int 8 8 8
char* 2(2^16即2字节) 4(2^32即4字节) 8(2^64即8字节)(由寻址范围确定)
float 4 4 4
double 8 8 8
strlen 和sizeof的区别:
1.sizeof是运算符,strlen是函数。
2.sizeof(data type)data type可以是数组,指针,类型,对象,函数等;strlen只能用char*做参数,且必须是以"\0"结尾。
3.求字符数组长度时,strlen不加最后的结束标志位,sizeof会加上"\0"。
关于sizeof
sizeof是C/C++中的一个操作符(operator),简单的说其作用就是返回一个对象或者类型所占的内存字节数
typedef unsigned int size_t;
sizeof的计算发生在编译时刻,所以它可以被当作常量表达式使用
几个需要注意的:1.指针变量的sizeof值与指针所指的对象没有任何关系,正是由于所有的指针变量所占内存大小相等
2.数组的sizeof,数组的sizeof值等于数组所占用的内存字节数
sizeof (data type)