C++初学者指南 第七篇(12)

来源:互联网 发布:原生js获取兄弟元素 编辑:程序博客网 时间:2024/05/08 09:29

必备技能7.12:使用sizeof
    在实际编程中,有时需要知道某种类型数据占用的空间的大小。由于C++中内置数据类型的大小是与计算环境相关的,所以我们不可能提前知道所有情况下变量占用空间的大小。为了解决这个问题,C++提供了一个编译时的运算符sizeof。它的通用形式如下:
sizeof(类型);
sizeof 变量 ;
    第一种形式返回的是指定数据类型占用空间的大小;第二种形式返回的是指定变量占用空间的大小,单位都是字节。从上面的形式我们可以看出,如果需要知道指定数据类型的大小,则需要在sizeof后面使用括号把数据类型扩起来;如果想要知道一个变量占用的空间大小,则可以不用括号。当然,使用括号也是没有错误的。
    下面的程序演示sizeof的用法。在32位环境下,程序的输出为1,4,4和8。

//演示sizeof的用法#include <iostream>using namespace std;int main(){     char ch;     int i;     cout << sizeof ch << ' ';      cout << sizeof i << ' ';     cout << sizeof(float) << ' ';     cout << sizeof(double) << ' ';     return 0;}
    sizeof可以应用于任何的数据类型。例如,当sizeof作用于一个数组的时候,返回的是数组占用的空间的字节数。如下面的代码段:

int array[4];
cout << sizeof(array) << ' ';
假设int类型的大小为4个字节,那么上面的代码段将输出16。也就是4个元素,每个元素占用4个字节,一共占用16个字节的空间。
    正如我们在前面提到的那样,sizeof是一个编译时的运算符。所有的用于计算变量或者数据类型大小的必要信息在编译时都是可知的。sizeof运算符主要是用来帮助我们生成可移植的代码。请记住:既然C++中定义的类型的空间大小取决于它们的实现,所以在编程的时候程序员假设它们的大小为某个值就是一种不要的编程习惯了。
练习:
1. 写出如何使用一个赋值语句来给变量t1,t2,t3赋值为10。
2. 如何重写下面的代码:
   x = x + 100;
3. sizeof运算符在_____时返回变量或者类型的空间大小。

原创粉丝点击