C++ sizeof 使用规则及陷阱分析

本文深入探讨了C++中sizeof操作符的工作原理,包括其在不同类型变量、对象以及数组上的应用。通过实例解析了sizeof可能遇到的陷阱,帮助开发者避免常见错误。
摘要由CSDN通过智能技术生成

C++ sizeof 使用规则及陷阱分析

2006-09-07 06:00作者:出处:blog责任编辑:方舟
  1、什么是sizeof

  首先看一下sizeof在msdn上的定义:

  The sizeof keyword gives the amount of storage, in bytes, associated with a variable or a type (including aggregate types). This keyword returns a value of type size_t.

  看到return这个字眼,是不是想到了函数?错了,sizeof不是一个函数,你见过给一个函数传参数,而不加括号的吗?sizeof可以,所以sizeof不是函数。网上有人说sizeof是一元操作符,但是我并不这么认为,因为sizeof更像一个特殊的宏,它是在编译阶段求值的。举个例子:

cout<<sizeof(int)<<endl; // 32位机上int长度为4
cout<<sizeof(1==2)<<endl; // == 操作符返回bool类型,相当于 cout<<sizeof(bool)<<endl;

  在编译阶段已经被翻译为:

cout<<4<<endl;
cout<<1<<endl;

  这里有个陷阱,看下面的程序:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值