第2章 数据类型与基本运算

合集下载

第2章 c语言基本数据类型、运算符和表达式

第2章 c语言基本数据类型、运算符和表达式
负整数的补码是①将此数绝对值的二进制形式(原码);②除最高位符号位外其他数取反 (反码);③加1(补码)。 -5的补码:
1000000000000101
1111111111111010
1111111111111011
整型数据所分配的字节数及数的表示范围(16位系统)
整型数据类型
[signed ]int unsigned [int] [signed] short [int] unsigned short [int] [signed ]long [int] unsigned long [int]
制和十六进制只是整型数值的三种表现形式而已。 整型常量类型的确定:根据值大小默认类型。 整型常量后面加后缀1或L,则认为是long int型。 无符号数也可以用后缀表示,整型常数的无符号数的后缀为“U”或“u”。 注意:在程序中是根据前缀来区分各种进制数的。因此在书写时不要把前缀弄错造
成结果不正确。
缺省形式的 整型数据类型
int unsigned short int unsigned short int long int unsigned long
字节数
取值范围
2
-32768~32767(-215~215-1)
2
0~65535
2
-32768~32767(-215~215-1)
2
0~65535(0~216-1)
3.字符型常量
字符常量是用单引号括起来的一个字符。它有二种形式:可视字符常量、转义字符常量。 (1)可视字符常量:单引号括起来的单个可视字符。
大多数字符常量都可以通过加单引号的方式表示,但有些特殊字符,如单引号本身和有些不 可见的特殊字符,就无法通过这种方法表示,为了解决这一问题,C语言引入了“转义字符”。

基本数据类型及运算

基本数据类型及运算
常量小结(续)
整型常量 十进制整数:由数字0~9和正负号表示 八进制整数:由数字0开头,后跟数字0~7表示 十六进制整数:由0x开头,后跟0~9,a~f,A~F表示 实型常量 十进制数形式:(必须有小数点) 如0.123, .123, 123.0, 0.0, 123. 指数形式:(e或E之前必须有数字;指数必须为整数)如12.3e3 ,123E2, 1.23e4 , e-5 , 默认double型,在实型常量后加字母f或F为float 型 字符常量:用单引号括起来的单个普通字符或转义字符 字符串常量:用双引号(“”)括起来的字符序列,每个字符串 尾自动加一个 ‘\0’ 作为字符串结束标志
-128~127

unsigned char
8
0~255
需要注意的是,标准C没有具体规定以上各整型数据所占内存字节数。只要求long型数据长度不短于int型,short型不长于int型。具体如何实现,由各计算机系统和编译系统决定。
如:在Visual C++ 6.0中,一个short型数据占用2个字节的内存空间,一个int型数据和一个long型数据分别占用4个字节的内存空间。
混合运算隐式转换规则
int char,short 说明: 必定的转换 运算对象类型 不同时转换

unsigned
float
long
显式转换举例
例 (int)(x+y) (int) main() { float x; int i; x=3.6; i=(int)x; printf(“x=%f,i=%d”,x,i); } 结果:x=3.600000,i=3
决定分配字节数 和数的表示范围
合法标识符
变量的使用:先定义,后使用

第二章+数据类型、运算符和表达式

第二章+数据类型、运算符和表达式
2019/7/20
格式项的一般形式为:
%[附加格式] 格式控制符
方括号中的内容可以缺省。
附加格式控制
含义说明
l(小写字母)
m
数据最小输出宽度(一个具体正整数)
.n(一个具体 对实数,表示输出几位小数;对字 正整数) 符串,表示截取的字符个数
-(负号) 输出的数据域内向左对齐
+(正号) 要求正数和0带正号输出,负数带符 号输出
变量的定义 格式为: 类型 变量列表;
可同时定义多个同类型的变量,之间用逗 号分隔。 变量的初始化 1. 变量定义时:格式为 类型 变量名=常数; 2. 变量定义后:通过赋值语句实现
2019/7/20
变量的作用域:变量能够起作用或者 可以被使用的程序范围。由定义的位 置决定
1. 局部变量:在函数内部定义的变量, 只在其定义的某个函数或复合语句范 围内有效。
3) 例题分析:example25
2019/7/20
4. 寄存器变量:程序运行时存储在CPU寄 存器中的变量,只用于局部变量,要求 是整型和字符型变量。说明符“register”
5. 外部变量:表示该变量可以在程序中的 任何地方使用,包括定义此变量的源文 件之外,作用域为整个工程。只能用于 全局变量。说明符为“extern”。
a string”
2019/7/20
注意:“A”与‘A’完全不同,前者是字 符串,后者是字符,它们在内存中的存 贮空间并不相同。 在字符串中使用双引号必须以“\”” 表示。
实例 example22 符号常量:用标识符命名的常量,可代
替常量 在程序中直接使用。 1. 使用C语言中的一个预编译指令#define
整型常量:可以用十进制、八进制和十 六进制来表示。 a.十进制整数:[ ± ]若干各0~9的数字。 如12, 0 ,-234等

基本数据类型与基本运算

基本数据类型与基本运算

第二章基本数据类型与基本运算本章主要介绍程序设计中高级语言提供的数据类型和其上允许的基本运算。

在介绍这些内容时,我们通过穿插一些实例介绍如何应用数据类型与基本运算来解决一些简单的问题。

2.1 数据类型的概念2.1.1 为什么程序设计语言中要引入“数据类型”这一概念?2.1.2 数据类型的概念数据类型是程序设计语言中的一个非常重要的概念。

那么,什么是数据类型呢?数据类型是由该类型的数据的值域(即值集)和在这些数据上所有施加的运算的集合(即运算集或操作集)组成。

值域指出了每一种数据类型的变量合法的数据取值范围,而运算集合则规定了每一种数据类型的变量和数据其上所允许进行的运算。

值域和运算集是数据类型的两个基本属性。

在下面介绍Pascal语言的数据类型的有关章节中,对每一种数据类型均将说明这两种属性。

2.1.3 数据类型的代数理论基础一个数据类型是一个二元组(D,R)。

其中,D是一个数据类型的值域,R是建立在D上的运算(操作)的集合。

这个二元组构成了一个代数系统。

其中,D叫做该系统的基集。

从本质上说,一个代数系统就是一个带运算的集合,而一个数据类型就是一个代数系统。

从这个概念出发,程序设计语言理论在数据结构的基础上发展了一些数据和类型的代数理论。

这些理论属于程序设计语言语义学的范畴,将来,有兴趣的学生在具备了比较深入的基础之后,可以作进一步的了解。

2.1.4 Pascal语言中数据类型的分类Pascal语言的优点之一是有丰富的数据类型,按照其定义者的不同可分为下面几类,如表2-1所示。

整数类型实数类型系统预定义的数据类型布尔类型(逻辑类型) 基本(标准)数据类型字符类型Pascal 枚举类型数据类型子界类型数组类型用户自定义的数据类型记录类型构造型数据类型集合类型文件类型指针类型图2-1 Pascal的数据类型2.2 基本数据类型本节介绍四种基本数据类型(Elementary Date Type),它们是整数类型、实数类型、布尔类型(逻辑类型)和字符类型。

C语言第02章 数据类型、运算符与表达式

C语言第02章 数据类型、运算符与表达式

回到 首页
运算符和结合性 P325,附录3
2.8 算术运算符和算术表达式
3、自增、自减运算符
自增运算符++和自减运算符--均是单目运算符, 功能是使变量的值增1或减1。其优先级高于所有 双目运算符,结合性为右结合性(自右至左)。
回到 首页
例如:++i或i++ 等价于i=i+1; --i或i-- 等价于i=i-1;
2.7数值型数据之间的混合运算
回到 首页
1、整型、实型、字符型数据之间可以混合运 算
整型(包括int,short,long)和实型(包括float,double)数据可 以混合运算,另外字符型数据和整型数据可以通用,因此,整 型、实型、字符型数据之间可以混合运算。 例如,表达式10+'a'+1.5-8765.1234*'b'是合法的。
2.9赋值运算符和赋值表达式
1、赋值运算符和赋值表达式
赋值运算符:“=”为双目运算符,右结合性。 赋值表达式:由赋值运算符组成的表达式称为赋值表达 式。 赋值表达式一般形式: 变量 赋值符 表达式 如 a=5 类型转换:将高精度的数据类型赋值给低精度的数据类 型,可能出错。
回到 首页
2.9赋值运算符和赋值表达式
2.8 算术运算符和算术表达式
3、自增、自减运算符
回到 首页
y=++x;等价于先计算x=x+1(结果x=6),再执行y=x,结果y=6。 y=x++;等价于先执行y=x,再计算x=x+1,结果y=5,x=6。 y=x++*x++;结果y=25,x=7。x++为后缀形式,先取x的值进行“*” 运算,再进行两次x++。 y=++x*++x;结果y=49,x=7。

数据类型与基本运算

数据类型与基本运算

度浮点数。
运算
03
浮点型数据支持基本的算术运算(加、减、乘、除)和比较运
算(大于、小于、等于等),但需要注意精度问题。
复数类型
定义
复数类型是一种包含实部和虚部的数值型数据,用于表bj”的形式表示,其中a是实部,b是虚部 ,j是虚数单位。
运算
复数支持基本的算术运算(加、减、乘、除)和比较运算(等 于、不等于),同时还有一些特殊的运算,如共轭、模和辐角 等。
乘等赋值
将右侧的值与左侧变量的值相乘,并 将结果赋给左侧变量,例如 `a *= b`。
除等赋值
将右侧的值与左侧变量的值相除,并 将结果赋给左侧变量,例如 `a /= b`。
取余等赋值
将右侧的值与左侧变量的值取余,并 将结果赋给左侧变量,例如 `a %= b`。
比较运算
等于
判断两个值是否相等,例 如 `a == b`。
大于
判断第一个值是否大于第 二个值,例如 `a > b`。
大于等于
判断第一个值是否大于或 等于第二个值,例如 `a >= b`。
01
02
03
04
05
06
不等于
判断两个值是否不相等, 例如 `a != b`。
小于
判断第一个值是否小于第 二个值,例如 `a < b`。
小于等于
判断第一个值是否小于或 等于第二个值,例如 `a <= b`。
规则
隐式类型转换通常发生在不同数据类型之间的运算,如整型与浮点型、字符型 与整型等。转换规则遵循数据类型的层次结构,从低层次向高层次转换。
显式类型转换
强制转换
程序员通过使用类型转换运算符,明 确指定将一种数据类型转换为另一种 数据类型。

数据类型与基本运算

数据类型与基本运算

c=(a++)*b;
printf("a=%d,c=%d\n",a,c)【; 程序运行结果】
}
a=4, c=20 a=4, c=15
算术运算符和算术表达式3-3
用算术运算符或圆括号将运算对象(常量、变量和函 数)连接起来的式子。 例如:
x*y%c-0.9+'A',a*b/c+8.2 都是合法的算术表达式。
C语言程序设计
1
第2章 数据类型与基本运算
计算机科学学院
1
基本数据类型
2
标识符
3
常量和变量
4
运算符与表达式
5
数据类型转换
6
基本输入和输出
7
应用举例
2
回顾
计算机科学学院
❖ 程序是为执行一项任务而编写的有序指令集 ❖ 算法是解决问题的具体方法和步骤 ❖ 流程图是算法的图形化表现形式 ❖ C语言的特点 ❖ C程序的编译和运行过程 ❖ 编译器将源程序转换成机器能理解的程序 ❖ 连接器用于连接相关的目标文件以生成可执行程序
char gender='m';
26
2.4 运算符与表达式
算术运算符和表达式 赋值运算符和表达式 关系运算符和表达式 逻辑运算符和逻辑表达式 条件运算符和条件表达式 逗号运算符和逗号表达式 其他运算符
27
计算机科学学院
运算符
计算机科学学院
28
算术运算符和算术表达式3-1
1 基本算术运算符
+
加法运算符,如2+3,x+y。
计算机科学学院
float
32 位 10-38 至 10+38 ,7位有效数字

《c语言程序设计基础》2基本数据类型及运算.ppt

《c语言程序设计基础》2基本数据类型及运算.ppt
3
2.1 数据类型
本节内容
2.1.1 标识符 2.1.2 常量与变量
2.1.3 整型 2.1.4 实型 2.1.5 字符型
4
本章要点 数据的描述规则 数据的操作规则
5
2.1 数据类型
❖ 圆的半径为5cm,计算圆的面积并输出
#include <stdio.h> void main() {
float r, area; r = 5; area = 3.14*r*r; printf ("%f \n", area); }
{
PRICE=40; /* 错误,不能给符号常量赋
int num, tot不al能; 对符号常量指定类型
num=10;
int PRICE; /* 错误,PRICE不是变量,不
total=num * PR能IC指E;定类型 */
printf(″total=%d\n″,total);
}
说符明号:常量程: 用序一中个用标#d识ef符in代e命表令一行个定常量义。PRICE
▪ 标识数据类型(14个):int、long、char、
float、double等
▪ 标识存储类型(5个):auto、static、 register等
▪ 标识流程控制(12个):goto、break、if、 else、continue等
▪ 标识运算符(1个):sizeof
11
2.1.1 标识符
❖2.1.1.2 预定义标识符 ❖总是以固定的形式用于专门的地方,例如标识库函
程序中的数据: r、area 5、3.14
对数据的运算: * 、=
6
2.1 数据类型
❖ 计算机在操作处理时,要完成以下工作: ❖在内存中要给半径 r 和面积 area 开辟存储空间,

C语言第2章 数据类型及运算符

C语言第2章 数据类型及运算符

C/C++程序设计第2 章数据类型及表达式计算机学院C/C++程序设计课程组C/C++程序设计第2章主要内容本章主要介绍:基本数据类型和存储类型的说明方法,以及基本运算符的运算规则和表达式的构成方法,为后续章节的学习奠定一个基础。

C/C++程序设计2.1 C 语言的数据类型使用高级语言编写程序,主要工作有两项:一是描述数据,二是描述数据加工的方法。

数据类型图 2.1C 语言的数据类型基本类型整型实型字符型带符号长整型(简称长整型)带符号整型无符号整型无符号整型无符号短整型无符号长整型单精度型双精度型空类型构造类型指针类型枚举类型数组类型结构体类型共用体类型C/C++程序设计2.2 常量常量是程序运行过程中其值不发生变化的数据。

2.2.1 整型常量表2.1 整型数据的表示方式2.2.2 实型常量3.14、.9999、-3.14159、834.、–0.666 、6.89E-52.2.3 字符常量’x’,’a’,’A’,’b’,’$’,’#’ ,printf("\tab\rcd\n\’ef\\g");2.2.4 符号常量#define 符号常量字符串#define PI 3.14159C/C++程序设计【例2.1】求一个圆柱体体积,用符号常量代替π。

#include <stdio.h>#define PI 3.14159 /*定义PI为符号常量*/void main(){float r,h,v;scanf("%f,%f",&r,&h);v=PI*r*r*h; /* PI相当于3.14159,参与运算*/printf("Volume=%f",v);}运行时输入:3,2↙运行结果为: Volume=56.548618C/C++程序设计2.2.5 字符串常量"\tab\rcd\n\’ef\\g“"I am a student" 、"x"、""注意:’\0’和’0’不同,’\0’是编码为0的字符,而’0’则是数字0,其编码为48。

第2章基本数据类型及运算汇总

第2章基本数据类型及运算汇总

须写出正确的表达式。而一个表达式中往往包含多个运算符,
所以必须熟悉每一种运算符的性质(优先级别和结合性),才能
写出2020有/10/正6 确求解结果的表达式。
3
第二章 数据类型、 运算符与表达式
➢ 常量与变量
➢ 整型、浮点型、字符型数据
➢ 变量的初始化
➢ 各类数值型数据间的混合运算
➢ 算术运算符与算术表达式
(数字开头) (包含非法字符$) (包含空格) (系统关键字)
14
.关键字 预先定义的具有特定含义的标识符 。也 称为保留字,不能另作他用。如: int char float double unsigned struct if do while switch return goto define include undef sizeof
➢ 赋值运算符与赋值表达式
2020/10/6 ➢ 逗号运算符与逗号表达式
4
2.1 基本数据类型
2020/10/6
5
数据类型
• 数据类型:数据存在的组织和形式。
• 数据类型是数据的基本属性
• 描述的是数据的存储格式和运算规 则.
• 不同数据类型的数据,在内存中所需 的存储空间大小、存储格式均有所 不同,能支持的运算以及相应的运算 规则也会有所不同.
2020/10/6
15
变量的命名习惯
C语言中,变量(标识符)的命名习惯:
▪ 避免使用无意义的名字,应尽量做到“见名知意”; ▪ 尽量使用代表变量实际含义的英文单词或缩写作标识符名; ▪ 当名字包含多个单词时,通常使每个单词的首字母大写; ▪ 以下划线开头的名字通常是系统内部保留的标识符名; ▪ 在整个程序中保持统一的命名方式。
2020/10/6

第2章C语言基本数据类型及运算(C语言程序设计)

第2章C语言基本数据类型及运算(C语言程序设计)

图 2.5 C 语言运算符分类
p40
第2章 C语言基本数据类型及运算
2.4.1 算术运算符和算术表达式
算术运算包括加、减、乘、除和求余运算。分别使用:+ 、、* 、/ 、% 表示。 见 P41 【例2.10】求两个整数相除的余数。
#include <stdio.h>
main() { printf("%d,%d,%d,%d",7%3,7%(-3),-7%3,-7%(-3)); }
• 内存 (内存中又分为两个区域,即为静态存储区 和动态存储区。) 2. 变量的存储类型的定义 存储类型 数据类型 变量列表; 3.存储类型:auto static extern register
第2章 C语言基本数据类型及运算 【例2.2】定义自动整型和字符型变量。
#include<stdio.h> main(){ auto char c1,c2; auto int i1,i2; scanf("%d,%d",&i1,&i2); c1=i1; c2=i2; printf("%c,%c\n",c1,c2); printf("%d,%d\n",c1,c2);
量。 外部和内部变量同名的处理: 外部变量如果与局部变量同名,在局部范围内局部变量 优先。(具体应用见第5章)p37
第2章 C语言基本数据类型及运算
变量定义可以出现在程序中的三个地方: 在函数的内部
在函数的参数中
在所有函数的外部 2.3.3 变量的初始化 存储类型符 数据类型符 变量1=初值1,变量2=初 值2„ „; static int a=1; auto int a=0,b=-3; p37

第2章基本数据类型与运算符

第2章基本数据类型与运算符
值自减1。例如若有定义:
int a=5; 则执行
a++ 或
++a 后,a的值为6;执行
a-或
--a 后a的值为4。
3。前缀运算、后缀运算
写在变量的前面称为前缀(或前置)运算符,写在变量 的后面称为后缀(或后置)运算符。
前缀运算与后缀运算时,注意如下两点:
(1) ++a与a++单独构成表达式时,两者使用时没有区别。
'!' ‘\0’
值得注意的是:
(1) 字符串中包含有双引号时字符时,字符双引号必须用 转义字符表示
(2) 一个字符串需占用两行时,需采用两对双引号分别连 续表示,参看下列。
例2.2 字符串常量分两行表示的实例。
#include <stdio.h>
main()
I say:
{
“Hello,world!”
a=3;b=++a*++a; printf(“a=%d b=%d\n”,a,b);
a=3;b=++a*a++; printf(“a=%d b=%d\n”,a,b);
a=3;b=a++*++a; printf(“a=%d b=%d\n”,a,b);
2.2 运算符
2.2.1 优先级与结合规则
1。运算优先级
优先级别:不同级别时,先算优先级别高的运算符;
结合规则:在同一级别运算时,按某种运算规则进行;优 先级别和结合规则见表2.3
2。单元运算、双元运算、三元运算 双元运算:只允许带左右两个运算数的运算符称为二元运
算符(或二目运算符、双元运算符),如算术运算。 单元运算:只允许有一个运算数的称为单元运算符(或单

第2章基本数据类型及运算符原始解读

第2章基本数据类型及运算符原始解读

在C语言中,大小写字母有不同的含义,例如:num, Num,NUM为三个不同的标识符。 在构造标识符时,应注意做到“见名知意”,即选择 有含义的英文单词(或汉语拼音)作标识符,以增加程 序的可读性。如表示年可以用year,表示长度可用 length,表示和可以用sum等。 C语言中有一些标识符被称为关键字,在系统中具有 特殊用途,不能作为一般标识符使用,如用于整型变量 定义的int关键字,就不能再用作变量名。 有些标识符虽不是关键字,但C语言总是以固定的形 式用于专门的地方,因此,用户也不要把它们当做一般 标识符使用,以免造成混乱。这些常用的标识符有: define,include,ifdef,ifndef,endif,elif。
2. 实型(浮点型)常量
实型常量是由整数部分和小数部分组成的,它只有十 进制的两种表示形式。 (1)定点数形式。它由数字和小数点组成。整数和小 数部分可以省去一个,但不可两者都省,而且小数点不 能省。如:1.234,.123,123.,0.0等。 (2)指数形式(或称科学表示法)。它是在定点数形 式表示法后加e(或E)和数字来表示指数。指数部分可 正可负,但须为整数,且应注意字母e(或E)之前必须 有数字。如:1.234e3,12.34e2均合法地代表了 1.234×103;而e3,1e2.3,.e3,e均不合法。 另外,实型常量的后缀用F(或f)表示单精度型,而 后缀用L(或l)表示长双精度型。如:0.5e2f表示单精 度数,3.6e5L表示长双精度数。
变量
在程序运行过程中,其值可以被改变的量称为变量。变量有两个要素: 变量名。每个变量都必须有一个名字,即变量名。变量命名应遵循标识符的命名规 则。 变量值。在程序运行过程中,变量值存储在内存中;不同类型的变量,占用的内存 单元(字节)数不同。在程序中,通过变量名来引用变量的值。 【程序2-3】用来输出两个整数相加、相减和相乘的结果,代码如下。 /* 文件名:chap02_3.cpp */ #include <stdio.h> void main(){ int x,y; printf("请输入两个整数,中间用空格隔开:"); scanf("%d%d",&x,&y); printf("%d+%d=%d\n",x,y,x+y); printf("%d-%d=%d\n",x,y,x-y); printf("%d*10%d=%d\n",x,y,x*y); } 程序运行结果: 请输入两个整数,中间用空格隔开:10 5↙ 10+5=15 10-5=5 10*5=50 本程序中,x和y定义成整型变量,用于接受用户输入的值。

C语言知识点:第2章 数据类型、运算符与表达式

C语言知识点:第2章 数据类型、运算符与表达式
C 语言程序设计知识点
主讲教师:杨剑
第 2 章:数据类型、运算符与表达式
1. 本章目标:
理解变量和常量的含义 熟悉基本数据类型 - int、char、float 和 double 使用算术运算符 理解类型转换 使用关系和逻辑运算符
2. 内存如何存放数据
电脑使用内存来记忆计算时所使用的数据 内存如何存储数据? 内存像旅馆.数据各式各样,要先根据数据的需求(即类型)为它申请一块合适的空
23. 复合赋值表达式
24. 赋值表达式和逗号运算符
赋值表达式 a=b=c=5;(从右向左计算) a +=a-=a*a
逗号运算符和逗号表达式 3+5,6+8 a=3*5,a*4
25. 习题
~7~
C 语言程序设计知识点
主讲教师:杨剑
有以下程序
main()
{
char a1=’M’,a2=’m’;
12. 单精度浮点型
float 在 C 语言中用于存储单精度浮点数 float 32 位 10-38 至 10+38 ,7 位有效数字 声明:
float price; 初始化:
float score = 11.3; score = 65.90;
13. 双精度浮点型
double 32 位 16 位有效数字 声明:
const float PI=3.14; S=PI*r*r; //等价于 3.14*r*r const 关键字的作用就是“冻结”一个量,它的值不能被修改,是一个只读(read only) 量。 优点:比数值常量可读性好、修改容易
18. 符号常量 2(宏常量)
还可用宏定义符号常量 语法:#define 符号名 常量值 例: 计算圆的周长时
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2.3 变量与常量
例如: int i, j=10, k; //表示定义了三个整型变量,其中变 量j的值被初始化为10。 float average=0.0; //定义一个浮点型变量average ,并初始化为0.0。 static double sum; //定义一个静态双精度变量。 int * ptr; //声明一个指针变量。
unsigned short (signed)int
unsigned (int) (signed) long (int) unsigned long (int) Float Double Long double Bool Void
无符号短整型 有符号整型
无符号整型 有符号长整型 无符号长整型 单精度浮点型 双精度浮点型 长双精度型 布尔型 无值型
2.1 C++语言的词法及规则
2.1.3 标识符与分隔符
分隔符(separator)用于分隔C++语言中的语法单位, 表示前一个语法实体的结束和下一个语法实体的开始。
分隔符有空格符、制表符(Tab)、换行符(Enter)、注释 符(//和/* */)、逗号(,)、分号(;)、{、}、(、)、 #、”、’、:。 “;”表示语句结束符,也表示空语句。 “{”和“}”用于表示复合语句的开始与结束。 “,”用作数据之间的分隔符,也可作为运算符。 “””表示字符串的开始与结束。
2.2 数据类型
【例2-1】查询VC++中各基本数据类型所分配的字节数。
运行结果: Visual C++ 2010 各种基本数据类型所占字节数: char类型:1 int类型:4 short类型:2 float类型:4 double类型:8 long double类型:8 bool类型:1
说明:sizeof是运算符,用于计算数据类型或对象所使用存储空间 大小(以字节为单位)。typeid也是运算符,它能获取一个表达式 在运行时刻的类型信息。
2.2 数据类型
2.2.1 基本数据类型
基本数据类型又称原子数据类型,是C++语言已预先定 义的,所以又被称内置数据类型。C++的基本数据类型包括 字符型、整形、实型、布尔型和无值型。 字符型用关键字char表示,用于处理字符,保存的是 该字符的8位ASCII码,占一个字节位置。例如:字母A 的ASCII编码是十六进制41,内存中一个字节所保存的 信息是0100001。 整型用关键字int表示,用于处理整数。整型根据是否 带符号分为整型和无符号整型,依据占用内存空间的 大小又分为整型与短整型。
2.2 数据类型
2.2.2 构造数据类型
构造数据类型(又称复合数据类型)是由用户根据程序设计的需 要,按照一定的语法规则构造出来的数据类型。C++语言支持的构 造数据类型有数组、指针、引用、类、结构、联合和枚举等。 对于成绩管理的例子,使用构造数据类型能较方便地描述整 个班级的成绩信息。可以用构造数据类型描述班级成绩信息如下 : (1)用字符数组存储学号、姓名、邮政编码、家庭地址等文字 信息,用整型数存储各门课程的成绩。 (2)用结构体描述一个学生的基本信息,结构体中包含学号、 姓名、成绩等信息。 (3)用学生结构体定义班级成绩数组描述整个班级的结构数组 ,数组中的每一个单元是一个学生的基本信息。
2.3 变量与常量
【例2-2】变量在内存中的状态观察示例。 #include <iostream> using namespace std; int main() { int i,j=10; float length=0.0; bool flag; static double sum; cout<<"i="<<i<<"\tj="<<j<<endl; cout<<"length="<<length<<"\tflag="<<flag<<"\tsum="<<sum<<e ndl; return 0; }
2.3 变量与常量
2.3.2 常量 常量(constant)是指在程序执行过程中其值始 终不变的数据。常量又分字面常量和有名常量。 1.字面常量(literal constant) 字面常量又称文字常量,是指程序代码中直接给出 的量。它存储在程序代码区,而不是数据区,不能通过 数据地址访问它。字面常量根据取值可分为整型常量、 实型常量、逻辑常量、字符常量和字符串常量。
2.3 变量与常量
2.3.1 变量
变量(variable)是取值可以改变的量,程序利用变量 保存运行过程中参与计算的值或计算结果。变量要用标识符 进行标识,也就是给变量命名。一个变量有三个基本要素: 变量名、数据类型和值。C++是强类型语言,数据在使用时 必须遵循“先声明,后使用”的原则。变量在使用前应先被 说明(也称定义),变量说明的语法格式为:
<存储类型> <数据类型> <变量名表>; <变量名表>::=<变量名>[=<表达式>],<变量名表>
2.3 变量与常量
其中: (1)<存储类型>为可选项,C++有4个关键字auto、 register、static和extern用于说明数据的存储区域,缺 省值为auto型。关于存储类型的详细内容参见第??节。 (2)<变量名表>是用逗号分隔的多个变量名。 (3)变量在定义时,可以用等号为其赋初始值。 (4)符号“::=”是对<变量名表>内含的解释。方括号表 示该项可以省略。后继章节在语法格式说明时除特别申明 ,含义与此相同。
2.1 C++语言的词法及规则
2.1.4 运算符
运算符(operator)又称操作符,是程序中用于表示各种运算 的符号。 C++语言的运算符种类丰富,功能强大,然而部分运算符的含 义不易理解,应通过上机编程练习掌握其用法。 表2-2列出了C++语言的主要运算符、优先级和结合性,具体用 法在后继章节中有详细的讲解。
2.3 变量与常量
程序运行时出现错误提示,选择“忽略”。 运行结果: i=-858993460 j=10 length=0 flag=204 sum=0 跟踪与观察: 调试程序,在“监视1”窗口的“名称”栏输入&i, &j,sizeof(i),&flag,&sum,sizeof(sum)等内容,如 图2-1所示。“&”运算符是C++的取地址运算,表示获取 内存空间的地址。
2.1 C++语言的词法及规则 2.2 数据类型 2.3 变量和常量 2.4 运算与表达式 2.5 数组 2.6 指针类型与引用类型 2.7 枚举类型
2.8 控制台输入和输出
2.9 案例实训
2.1 C++语言的词法及规则
2.1.1 字符集 程序设计语言要用一些特定的字符来构造其基本词法 单位来描述程序,C++语言使用的字符主要为键盘上的字符, 包括: (1)26个大写英文字母 (2)26个小写英文字母 (3)10个阿拉伯数字 (4)其他符号:!# % ^ & * ( ) - + _ = { } [ ] \ | “ ‘ ~ : ; < > , . ? / 空格
2 4
4 4 4 4 8 8 1 0
0~65535 -2147483648~2147483647
0~4294967295 -2147483648~2147483647 0~4294967295 -3.4×1038~3.4×1038 -1.7×10308~1.7×10308 -1.7×10308~1.7×10308 true或false
2.2 数据类型
实型又称浮点型,用于定义带小数的实数,用关键字float 和double表示。 布尔型也称逻辑型,用关键字bool表示。布尔值只有两个 值:true和false,分别表示逻辑“真”与“假”。C语言用 整数0表示逻辑“假”,而用非0值表示逻辑“真”。VC++ 同事允许两种方法表示逻辑真与假,建议编程时尽可能用 true和false。 无值型又称空类型,用关键字void表示。不能用它来说明 变量,主要用于说明函数形参和返回值,以及指针指向任 意类型的数据。
2.3 变量与常量
图2-1 例2-2程序的跟踪窗口
2.3 变量与常量
变量i,j,flag它们的段基址相同样,都是0x002d,而定义 时带有存储类型static的变量sum的段基址是0x00f9。可以 看出,由于存储类型的不同,系统将它们存储在不同的段 中。 变量j的值是10,而变量i的值是-858993460,变量flag的值 是true,但程序运行结果显示的是204。静态变量sum的值 是0.0,虽然程序中与变量i和flag一样也没有对它进行初始 化,但编译器自动对它赋初值0。该程序在执行过程中两 次出现错误提示,分别是由于i和flag没有初始化引起的, 与sum无关。 从两个sizeof的值可知int型变量占用4个字节,double型变 量占用8个字节。
2.1 C++语言的词法及规则
2.1 C++语言的词法及规则
2.1 C++语言的词法及规则
优先级和结合性决定了运算的先后关系。 表中序号越小,优先级越高。 一个运算符所谓结合性为左结合是指计算顺序是从左向右, 例如:x+y由于+运算符是左结合,先计算x再计算x与y的 和,而右结合正好相反,例如:x=y+10,先计算右边的 y+10,再赋值给x。 结合性决定优先级相等的运算符组合在一起时的运算次序, 相同优先级的运算符有相同的结合性,例如:a*b+c-d运 算次序为(((a*b)+c)-d)。
相关文档
最新文档