sizeof使用

无法使用sizeof的情况

  sizeof操作符不能用于函数类型,不完全类型或位字段。不完全类型指具有未知存储大小的数据类型,如未知存储大小的数组类型、未知内容的结构或联合类型、void类型等。
  如sizeof(max)若此时变量max定义为int max();sizeof(char_v),若此时char_v定义为char char_v [MAX]且MAX未知,sizeof(void)都不是正确形式。

特殊情况

  参数为结构或类
  Sizeof应用在类和结构的处理情况是相同的。但有两点需要注意:
  第一、结构或者类中的静态成员不对结构或者类的大小产生影响,因为静态变量的存储位置与结构或者类的实例地址无关。
  第二、没有成员变量的结构或类的大小为1,因为必须保证结构或类的每一个实例在内存中都有唯一的地址。
  参数为其他

int func(char s[5]);
{
	return 1;
}

  sizeof(func(“1234”))=4//因为func的返回类型为int,所以相当于求sizeof(int)。

猜你喜欢

转载自blog.csdn.net/essity/article/details/82824098