变量名
C++提倡使用有一定含义的变量名。如果变量表示差旅费,应将其命名为 cost_of_trip 或 costOfTrip,
不要将其命名为 x 或 cot。必须遵循几种简单的C++命名规则:
● 在名称中只能使用字母字符、数字和下划线(_)。
● 名称的第一个字符不能是数字。
● 区分大写字符与小写字符。
● 不能讲C++关键字用作名称。
● 以两个下划线或下划线和大写字母打头的名称被保留给实现(编译器及使用的资源)使用。以一个下划
线开头的名称被保留给实现,用作全局标识符。
● C++对于名称的长度没有限制,名称中所有的字符都有意义。
整形
C++的基本整形(按宽度递增的顺序排列)分别是char、short、int 和 long,其中每种类型都有符号版本
和无符号版本,因为总共有8种类型可供选择。下面更详细介绍这些整数类型。
short、int 和 long
计算机内存由一些叫做(bit)的单元组成(参见本章后面的注释“位与字节”)。C++的 short、int 和long
类型通过使用不同数目的位来储存值,最多能够表示3种不同的整数宽度。C++提供了一种灵活的标准,它确保了最
小长度(从C语言借鉴而来),如下所示:
● short 至少16位。
● int 至少与 short 一样长。
● long 至少32位,且至少与 int 一样长。
*这里要提一下位与字节:
计算机内存的基本单元是位(bit)。可以将位看作电子开关,可以开,也可以关。关表示值 0,开表示值 1。
8位的内存块可以设置出256种不同的组合,因为每一位都可以有两种设置,所以8位的总组合数为2*2*2*2*2*2*2
*2,即256.因此,8位单元可以表示0~255或者-128到127。每增加一位,组合数便加倍。这意味着可以把16位单元
设置成65536个不同的值,把32位单元设置成4294672296个不同的值。
1 byte = 8 bit ,1 KB = 1024 byte, 1 MB = 1024 KB。*
在64位操作系统上运行这段代码:
#include<iostream>
#include<climits>
int main()
{
using namespace std;
int n_int = INT_MAX;
short n_short = SHRT_MAX;
long n_long = LONG_MAX;
cout << "int is " << sizeof (int) << " bytes." << endl;
cout << "short is " << sizeof n_short << " bytes." << endl;
cout << "long is " << sizeof n_long << " bytes." <<endl <<endl;
cout << "Msximum values:" << endl;
cout << "int: " << n_int <<endl;
cout << "short: " << n_short <<endl;
cout << "long: " << n_long << endl <<endl;
cout << "Minimum int value = " << INT_MIN << endl;
cout << "Bits per byte = " << CHAR_BIT << endl;
return 0;
}
这是运行结果
程序说明
(1) 操作符 sizeof 和头文件limits
sizeof 操作符指出,在使用8位字节的系统中,int 的长度为4个字节。可对类型名或变量名使用sizeof
操作符。对类型名(如 int )使用 sizeof 操作符时,应将名称放在括号中: 如对变量名( 如 n_short )
使用该操作符,括号是可以省略的。
而对于INT_MAX、SHRT_MAX、LONG_MAX,其实是头文件 climits 定义的符号常量。INT_MAX表示的是类
型 int 能够储存的最大值,SHRT_MAX表示的是short能够储存的最大值,LONG_MAX表示的是long能够储存的
最大值。做climits中还定义了许多符号常量:
符号常量 | 表示 |
---|---|
CHAR_BIT | char 的位数 |
CHAR_MAX | char 的最大值 |
CHAR_MIN | char 的最小值 |
SCHAR_MAX | signed char 的最大值 |
SCHAR_MIN | signed char 的最小值 |
UCHAR_MAX | unsigned char 的最大值 |
SHRT_MAX | short 的最大值 |
SHRT_MIN | short 的最小值 |
USHRT_MAX | unsigned short 的最大值 |
INT_MAX | int 的最大值 |
INT_MIN | int 的最小值 |
UNIT_MAX | unsigned int 的最大值 |
LONG_MAX | long 的最大值 |
LONG_MIN | long 的最小值 |
ULONG_MAX | unsigned long 的最大值 |
(2)初始化
初始化将赋值与声明合并在一起。例如,下面的语句:
int n_int = INT_MAX;
声明了变量 n_int,并将int的最大值取值赋值给该变量;也可以使用常规常量来初始化。可以将变量初始
化为另一个变量,条件是后者已经定义过。甚至可以使用表达式来初始化变量,条件是当程序执行到该声明时,
表达式中所有的值都是已知的:
int uncles = 5;
int aunts = uncles;
int chairs = aunts +uncles + 4;
如果将 uncles 的声明移到语句列表的最后,则另外两条初始化语句将非法,因为这样当程序试图对其他
变量进行初始化时,uncles的值时未知的。
前面的初始化句法来自C语言,C++还有另外一种C语言没有的初始化句法:
int wrens(432);
**记住:如果不对函数内部定义的变量进行初始化,该变量的值将是不确定的。这意味着该变量的值将
是它被创建之前,该内存单元保存的值。在声明变量是对它进行初始化,可以避免以后忘记给它赋值的情况发生。**