sizeof 操作符

sizeof 操作符的作用是返回一个对象或类型名的长度,返回值的类型为size_t,长度的单位是字节。size_t 表达式的结果是编译时常量,该操作符有以下三种语法形式:

sizeof (type name);

sizeof (expr);

sizeof expr;

将 sizeof 应用在表达式 expr 上,将获得该表达式的结果的类型长度:

Sales_item data, *p;
sizeof(Sales_item); //存储Sales_item类型对象所占的空间大小
sizeof data;           //data的类型大小,即sizeof(Sales_item)
sizeof p;         //指针所占的空间大小
sizeof *p;        //p所指类型的空间大小即sizeof(Sales_item)

将 sizeof 用于 expr 时, 并没有计算表达式 expr 的值。 特别是在 sizeof,*p 中,指针 p 可以持有一个无效地址,因为不需要对 p 做解引用操作。

使用 sizeof 的结果部分地依赖所涉及的类型:

对 char 类型或值为 char 类型的表达式做 sizeof 操作保证得 1。

对引用类型做 sizeof 操作将返回存放此引用类型对象所需的内在空间大小。

对指针做 sizeof 操作将返回存放指针所需的内在大小;注意,如果要获取该指针所指向对象的大小,则必须对指针进行引用。

对数组做 sizeof 操作等效于将对其元素类型做 sizeof 操作的结果乘上数组元素的个数。

因为 sizeof 返回整个数组在内存中的存储长度,所以用 sizeof 数组的结果除以 sizeof 其元素类型的结果,即可求出数组元素的个数:

// sizeof(ia)/sizeof(*ia) returns the number of elements in ia
int sz = sizeof(ia)/sizeof(*ia); 

转载于:https://www.cnblogs.com/xiaojianliu/articles/8971519.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值