详解sizeof与strlen

一,sizeof是C语言的一种单目运算符,与C语言的其他运算符++,--一样,它并不是函数;sizeof()以字节为单位给出了操作数的大小;sizeof的值是无符号int。

     strlen是一个函数,只处理字符数组,遍历字符数组中每个元素,当遇到''时停止遍历,返回字符数组中字符的个数,sizeof的值是无符号int。

二,sizeof

   1,sizeof用于数组,返回编译时分配的数组空间大小,如果字符数组,注意有'':int num[4]; sizeof(num) 返回16、char str[] = "hello";sizeof(str)返回6。

   2,sizeof用于指针,返回存储该指针所用的空间大小(存储该指针的地址的长度,是长整型,应该为4):char *p = "weqwe";sizeof(p)返回4。

  3,sizeof用于类型,返回该类型所占的空间大小

 

数据类型 所占字节数
char 1字节
short (short int) 2字节
int 4字节
long (long int) 4字节
float 4字节
double 8字节
long long(long long int) 8字节
long double 10字节

  4,sizeof用于对象,返回对象的实际占用空间大小

  5,sizeof用于函数,函数的返回类型所占的空间大小。函数的返回类型不能是void。

三,sizeof的常量性

   sizeof的计算发生在编译时刻,所以sizeof被当作常量表达式用。

原文地址:https://www.cnblogs.com/usa007lhy/p/3341751.html