C++ Primer Plus学习——第三章

C++ Primer Plus学习——第三章

简单变量

变量名

命名规则

1.在名称中只能使用字母字符、数字和下划线(_)。
2.名称的第一个字符不能是数字。
3.区分大写字符和小写字符。
4.不能将C++关键字用作名称。
5.以两个下划线或下划线和大写字母打头的名称被保留给实现(编译器及其使用的资源)使用。以一个下划线开头的名称被保留给实现,用作全局标识符。
6.C++对于名称的长度没有限制,名称中所有的字符都有意义,但有些平台有长度限制。

整型

整数就是没有小数部分的数字,如2/98、-5286和0。

整型short、int、long和long long

short至少16位;
int至少与short一样长;
long至少32位,且至少与int一样长;
long long至少64位,且至少与long一样长。

1.运算符sizeof和头文件limits

(1)sizeof运算符指出,在使用8位字节的系统中,int的长度为4个字节。可对类型名或变量名使用sizeof运算符。对类型名(如int)使用sizeof运算符时,应将名称放在括号中;但对变量名(如n_short)使用该运算符,括号是可选的:

cout<<"int is "<<sizeof(int) <<" bytes.\n";
cout<<"short is "<<sizeof n_short<<" bytes.\n";

(2)头文件climits定义了符号常量来表示类型的限制。如前所述,INT_MAX表示类型int能够存储的最大值。
在这里插入图片描述
在这里插入图片描述
climits文件中包含与下面类似的语句行:

#define INT_MAX 32767
2.初始化

初始化将赋值与声明合并在一起。例如,下面的语句声明了变量n_int,并将int的最大取值赋给它:

int n_int = INT_MAX;

也可以使用字面值常量来初始化。可以将变量初始化为另一个对象,条件是后者已经定义过。甚至可以使用表达式来初始化变量,条件是当程序执行到该声明时,表达式中所有的值都是已知的:

int uncles = 5;
int aunts = uncles;
int chairs = aunts + uncles + 4;

如果将uncles的声明移到语句列表的最后,则另外两条初始化语句将非法,因为这样当程序试图对其他变量进行初始化时,uncles的值是未知的。
前面的初始化语法来自C语言,C++还有另一种C语言没有的初始化语法:

int owls = 101;
int wrens(432);//将wrens设置为432
3.C++11初始化方式

还有另一种初始化方式,这种方式用于数组和结构,但在C++98中,也可用于单值变量:

int hamburgers = {24};

将大括号初始化器用于单值变量的情形还不多,但在C++11标准使得这种情形更多了。首先,采用这种方式时,可以使用等号(=),也可以不使用:

int emus{7};
int rheas = {12};

其次,大括号内可以不包含任何东西。在这种情况下,变量将被初始化为零:

int rocs = {};
int psychics{};

第三,这有助于更好地防范类型转换错误。

无符号类型

前面介绍的4种整型都有一种不能存储负数值的无符号变体,其优点是可以增大变量能够存储的最大值。例如,如果short表示的范围是-32768到+32767,则无符号版本的表示范围为0-65535.当然,仅当数值不会为负时才应使用无符号类型,如人口、粒数等。要创建无符号版本的基本整型,只需使用关键字unsigned来修改声明即可。
注意:unsigned本身是unsigned int的缩写。

整型字面值

与C相同,C++能够以三种不同的计数方式来书写整数:基数为10、基数为8和基数为16。如果第一位为1-9,则基数为10(十进制);因此93是以10位基数的。如果第一位是0,第二位为1-7,则基数为8(八进制);因此042的基数是8,它相当于十进制数34。如果前两位为0x或0X,则基数为16(十六进制);因此0x42为十六进制,相当于十进制数66。
在默认情况下,cout以十进制格式显示整数,而不管这些整数在程序中是如何书写的。如果要以十六进制或八进制方式显示值,则可以使用cout的一些特殊特性。头文件iostream提供了控制符endl,用于指示cout重起一行。同样,它还提供了控制符dec、hex和oct,分别用于指示cout以十进制、十六进制和八进制格式显示整数。而诸如cout<<hex;等代码不会在屏幕上显示任何内容,而只是修改cout显示整数的方式。

char类型:字符和小整数

char类型是专为存储字符(如字母和数字)而设计的。

成员函数cout.put()

cout.put()的意思是,通过类对象cout来使用函数put(),它提供了另一种显示字符的方法,可以替代<<运算符。

signed char和unsigned char

与int不同的是,char在默认的情况下既不是没有符号,也不是有符号。是否有符号由C++实现决定,这样编译器开发人员可以最大限度地将这种类型与硬件属性匹配起来。unsigned char类型的表示范围通常是0-255,而signed char的表示范围为-128到127。

bool类型

布尔变量的值可以是true或false。

const限定符

关键字const叫做限定符,因为它限定了声明的含义。
创建常量的通用格式如下:

const type name = value;

浮点数

浮点数能够表示带小数部分的数字,如果数字很大,无法标识为long类型,则可以使用浮点类型来表示。

书写浮点数

1.标准小数点表示法
2.E表示法
例:7E5表示7乘以10的5次方。

浮点类型

在通常情况下:
float为32位
double为64位
long double为80、96和128位

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值