

基本数据类型
C++的数据有两种基本形式,即常量和变量。常量的用法比较简单,本身的书写格式就说明了该常量的类型;而变量在使用之前必须先说明其类型,否则程序无法为该变量分配存储空间。即变量要“先说明后使用”。这条原则同样适合C++程序的其它成分,如函数、类等。
在C++中数据类型分为两大类:基本数据类型和导出数据类型。基本数据类型是C++中预定义的数据类型,包括字符型、整型、实型、双精度型和无值型。导出数据类型是用户根据程序设计的需要,按C++的语法规则由基本数据类型构造出来的数据类型,包括数组、指针、结构体、共同体、枚举和类等。
对于字符型,可分为无符号型(unsigned)和有符号型(signed);对于整型,可分为长(long)整型和(short)短整型、有符号长整型和短整型、无符号长整型和短整型;对于双精度型,有长双精度型。
整数在存储单元中以二进制补码形式存储,如不同类型的整数11在存储单元中的存储情况如图


运算符与表达式

运算符与表达式是第二章的重点,基本的定义就不再赘述了,下面列了一些容易忽视或混淆的难点,供各位阅读~
逻辑运算符
参加逻辑运算的操作数可以是任意的基本数据类型的数据。如果在一个逻辑表达式中包含多个逻辑运算符及关系运算符或算术运算符,应按以下的优先顺序运算:
(1)!(逻辑非)→&&(逻辑与)→||(逻辑或),即“!”为三者中最高的。
(2)!(逻辑非)→ 算术运算符 → 关系运算符 → &&(逻辑或)和||(逻辑或)
逻辑表达式
在逻辑表达式的求解中,并不是所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的值时,才执行该运算符。
例如:
(1)a&&b&&c 只有a为真 (值非0)时,才需要判别b的值;只有a和b都为真的情况下才需要判别c的值。只要a为假(值为0),就不必判别b和c(此时整个表达式已确定为假)。如果a为真,b为假,则不判别c。
(2)a||b||c 只要a为真(值非0),就不必判断b和c;只有a为假,才判别b;a和b都为假才判别c。
赋值运算符与表达式
赋值运算符的优先级比算术运算符、关系运算符和逻辑运算符的优先级低,计算顺序是自右向左,即先求出表达式的值,然后将计算结果赋给变量。和其它表达式一样,赋值表达式也可以作为更复杂的表达式的组成部分。例如表达式:
a=(b=4)+6的计算顺序是:
①先运算(b=4) //执行后b的值为4,赋值表达式(b=4)的值也为4
②再运算4+6 //执行后该表达式的值为10
③将10赋给变量a,即先将4赋给变量b,再把变量b的值4和6相加,结果为10,最后将10赋给变量a。
自增和自减运算符
++和--的优先级高于所有算术运算符、关系运算符和逻辑运算符。但在使用这两个运算符时要注意它们的运算对象只能是变量,不能是常量或表达式。例如,--3、(i+j)++都是错误的表达式。

不同类型数据间的混合算术运算
C++规定,不同类型的数据在参加运算之前会自动转换成相同的类型,然后再进行运算。运算结果的类型是转换后的类型。转换的规则是:级别低的类型转换为级别高的类型。各类型按级别由低到高的顺序是:
char —〉int —〉unsigned —〉long —〉unsigned long —〉float —〉double。
因此,即使两个char型的数据也要先转换为int型,运算结果也是int型;两个float型数据运算的结果为double型。不同类型的数据之间也是这样,如一个char型数据和一个int型数据的运算结果为int型;一个int 型数据和一个float型数据的运算结果为double型。例如表达式10+'a'+1.5-87.65*'b' 的运算结果为double型。
另外,C++规定,有符号类型数据和无符号类型数据进行混合运算,结果为无符号类型。例如,int型数据和unsigned类型数据的运算结果为unsigned型。
文字/编辑:胡涵旭

南京理工大学本科生学业指导中心
微信公众号 : 南理工乐学空间
地址:逸夫楼201
本文介绍了C++中的基本数据类型及其使用方法,包括字符型、整型、实型等,并详细阐述了逻辑运算符、赋值运算符的运算规则及不同类型数据间的混合运算过程。

被折叠的 条评论
为什么被折叠?



