c++ Prime读书笔记7(sizeof)

本文介绍了C++中sizeof操作符的用法,包括计算变量、类型、对象和引用的字节长度。通过示例程序展示了sizeof在指针、引用、数组及不同类型变量上的应用,强调了sizeof在编译时的计算特性及其在数组定义和模板参数中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 siseof 操作符的作用是返回一个对象或类型名的字节长度它有以下三种形式

sizeof (type name );

sizeof ( object );

sizeof object;

 

// sizeof.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"

#include <string>
#include <iostream>
#include <cstddef>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
 size_t ia;
 ia = sizeof( ia ); // ok
 ia = sizeof ia; // ok
 // ia = sizeof int; // 错误
 ia = sizeof( int ); // ok
 int *pi = new int[ 12 ];
 cout << "pi: " << sizeof( pi )//pi为指针,指针占用空间均为4
 << " *pi: " << sizeof( *pi )//*pi为数组第一个元素,其类型为int,占用空间为4
 << endl;
 // 一个string 的大小与它所指的字符串的长度无关
 string st1( "foobar" );
 string st2( "a mighty oak" );
 string *ps = &st1;
 string &ss = st1;
 cout << "string: "<< sizeof(string) 
 << " st1: " << sizeof( st1 )
 << " st2: " << sizeof( st2 )
 << " ps: " << sizeof( ps )
 << " *ps: " << sizeof( *ps )
 << " &ss: "<< sizeof( ss )
 << endl;
 cout << "short :/t" << sizeof(short) << endl;
 cout << "short* :/t" << sizeof(short*) << endl;
 cout << "short& :/t" << sizeof(short&) << endl;
 cout << "short[3] :/t" << sizeof(short[3]) << endl;
 return 0;
}
/*
pi: 4 *pi: 4
string: 32 st1: 32 st2: 32 ps: 4 *ps: 32 &ss: 32
short : 2
short* :        4
short& :        2
short[3] :      6
请按任意键继续. . .
正如上面的例子程序所显示的那样应用在指针类型上的sizeof 操作符返回的是包含该
类型地址所需的内存长度但是应用在引用类型上的sizeof 操作符返回的是包含被引用对
象所需的内存长度

*/

sizeof 操作符在编译时刻计算因此被看作是常量表达式它可以用在任何需要常量表
达式的地方如数组的维数或模板的非类型参数例如
// ok: 编译时刻常量表达式
int array[ sizeof( some_type_T )];

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值