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

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

//演示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运算符在_____时返回变量或者类型的空间大小。程序员