各变量所占字节问题,strlen(),sizeof()相关问题

各变量所占字节数与操作系统位数有关:

  类型          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)

猜你喜欢

转载自www.cnblogs.com/liu6666/p/12459407.html