第一章 数据类型与表达式

C++语言的字符集与词汇

在这里插入图片描述
在这里插入图片描述

C++的数据包括:

常量:程序运行时其值不能改变的量(即常数)
变量:程序运行时其值可以改变的量称为变量。
常量与变量都具有类型。

数据类型

计算机处理的对象是数据,而数据是以某种特定
的形式存在的(例如整数、浮点数、字符等形
式)

C++可以使用的数据类型如下:

在这里插入图片描述

常数

 定义:程序运行时其值不能改变的量(即常数)
 分类:
 符号常量:用标识符代表常量
 定义格式: #define 符号常量 常量
 一般用大写字母
 直接常量:
 整型常量
 实型常量
 字符常量
 字符串常量

整型常量(整常数)

三种形式:

十进制整数:

由数字0~9和正负号表示. 如 123,-456,0

八进制整数:

由数字0开头,后跟数字0~7表示. 如0123,011

十六进制整数:

由0x开头,后跟09,af,A~F表示. 如0x123,0Xff

整型常量的类型

 根据其值所在范围确定其数据类型
 在整常量后加字母l或L,认为它是long int 型常量

实型常量(实数或浮点数)

表示形式:

十进制数形式:

由整数部分和小数部分组成,必须有小数点) 如0.123, .123, 123.0, 0.0, 123.
( 可以省略其中之一,如78.或.06,.0,但不能二者皆省略。)

指数形式:

 其一般形式为 尾数 e或E 指数
 用e或E代替指数10
 e或E之前后必须有数字;
 指数必须为整数
 如12.3e3 ,123E2, 1.23e4 , e-5(×) , 1.2E-3.5 (×)

实型常量的类型

 默认double型
 在实型常量后加字母f或F,认为它是float 型
 在实型常量后加字母l或L,认为它是long double 型
例如:
1.23E10 0.23E-4

45.e+23 -23.68E12

1.23E10F 0.23E-4f

45.e+23L -23.68E12L

字符常量

定义:用单引号括起来的单个普通字符或转义字
符.
 普通字符: ‘a’ ‘A’ ‘? ’ ‘\n’ ‘\101’
 转义字符:反斜线后面跟一个字符或一个代码值表示
字符常量的值:该字符的ASCII码值
 ‘A’—65, ‘a’—97,‘0’—48 , ‘\n’—10
字符在存储时将其相应的ASCII代码放到存储单元中。
如果字符变量c1的值为’a’,c2的值为’b’,则在变量中
存放的是’a’的ASCII码97,‘b’ 的ASCII码98,详见附
录A。
字符数据是以ASCII码存储的,它的存储形式就与整数
的存储形式类似。因此字符数据和整形数据之间可以在
一定程度上相互转换。

字符串常量

 定义:用双引号("")括起来的字符序列
 存储:每个字符串尾自动加一个 ‘\0’ 作为
字符串结束标志
 例 字符串"hello"在内存中: h e l l o \0
 例 空串 “”
 字符常量与字符串常量不同
注意
如果一个字符串实在很长,一行写
不下,可以在行尾插入一个斜杠符
号,以示意编译器下行继续:
cout<<" *\n ***\n **\n\
****\n *****\n ***\n *\n";

变量

在程序运行期间其值可以改变的量称为变量。
一个变量在内存中占据一定的存储单元,在该存储单元中存放变量的值。
注意区分变量名和变量值这两个不同的概念。
在这里插入图片描述
注意
对多个变量在定义时赋予同一初值,必须分别
指定,不能写成
float a=b=c=4.5; //错误
而应写成
float a=4.5,b=4.5,c=4.5;

float a,b,c;
a=b=c=4.5;

常变量

在定义变量时,如果加上关键字const,则变量的值在程序运行期间不能改变,这种变量称为常变量(constant
variable)。
const int a=3;
在定义常变量时必须同时对它初始化,此后它的值不能再改变。
const int a; a=3; //错误
可以用表达式对常变量初始化,如
const int b=3+6, c=3*cos(1.5);
 注意:由于使用了系统标准数学函数cos,必须将包含该函数有
关的信息的头文件“cmath”(或math.h)包含到本程序单位中来。
常变量又称为只读变量(read-only-variable)。

运算符

自增和自减运算符

自增(++)和自减(–)运算符的作用是使变量的值增1或
减1,
 前置 ++i, --i (先执行i+1或i-1,再使用i值)
 后置 i++, i-- (先使用i值,再执行i+1或i-1)
++i与i++的***区别***在于:
 如果++i与i++又作为分量参加其他运算的话,
 ++i是先令i加1然后参加其他运算;
 i++是先令i参加其他运算,而后再令i加1。
 例:
x=i++; //结果等价于{ x=i; i=i+1; }
x=++i; //结果等价于{ i=i+1; x=i; }
++ --结合方向: 自右向左
例 -i++  -(i++)

各类数值型数据间的混合运算

 int、float、double型数据可以混合运算
 char、int型数据可以通用
在这里插入图片描述

强制类型转换运算符

在表达式中不同类型的数据会自动地转换类型进行运算。
还可以利用强制类型转换运算符将一个表达式转换成所
需类型。
强制类型转换的一般形式为
(类型名)(表达式)
例如:
(double)a (将a转换成double类型)
(int)(x+y) (将x+y的值转换成整型)
(float)(5%3) (将5%3的值转换成float型)
注意
如果要进行强制类型转换的对象是一个变量,该变量
可以不用括号括起来。
如果要进行强制类型转换的对象是一个包含多项的表
达式,则表达式应该用括号括起来。
例如x=3.6;y=4.2
(int)x+y 与(int)(x+y)的区别
在强制类型转换时,得到一个所需类型的中间变量,
但原来变量的类型未发生变化。
#include
using namespace std;
int main( )
{ float x;
int i;
x=3.6;
i=(int)x;
cout<<“x=”<<x<<",i="<< i<<endl;
return 0;
}

赋值转换规则:使赋值号右边表达式值自动转换成其左边变量的类型

 例:
float f;
int i;
i=10;
f=i; // f=10.0
i=2.56; //结果i=2;

猜你喜欢

转载自blog.csdn.net/lhy2018212704/article/details/84891008