c++ 数据类型、运算符和表达式
c语言的数据类型、运算符和表达式

数据类型、运算符和表达式一、C 语言的基本数据类型数据是程序处理的对象。
C 中将数据分为不同的数据类型,任何数据都属于某一种特定的数据类型。
数据类型的作用有两个:一是指明为数据分配多大的存储空间和规定了数据的存储结构,进而规定了数据的取值范围;二是规定了数据所能进行的操作。
C 的数据类型分为基本数据类型和构造类型。
基本数据类型是系统定义的,用户可以直接使用。
构造类型由用户自行定义。
C 的数据类型如图所示。
C 标准没有规定各类数据所占用内存位数。
所以不同c 编译系统的各类数据所占用内存位数是不一样的。
上机使用时,应注意使用的c 编译系统的具体规定。
Turbo C 基本类型 所占位数 数的范围 [signed] char 8 -128~127 unsigned char 8 0~255 [signed]int 16 -32768~32767 short [int] 16 -32768~32767long [int] 32 -2147483648~2147483647 unsigned [int] 16 0~65535 unsigned short [int] 16 0~65535 unsigned long [int]320~4294967295C++数据类型基本类型字符型(char) 空类型(void)整型短整型(short int) 无符号整型(unsigned int)长整型(long int)基本整型(int) 实型(浮点型) 双精度型(double)单精度型(float) 指针构造类型枚举(enum) 联合(union)结构体(struct)数组float 32 约6位有效数字double 64 约12位有效数字在Visual C++中:char:1 Byteint:4 Byteshort:2 Bytelong:4 Bytefloat:4 Bytedouble:8 Byte二、常量常量:整型常量、实型常量、字符常量、字符串常量、符号常量1.整型常量C语言程序中可以使用十进制、八进制和十六进制来表示整型常量。
C语言程序设计教案第3讲 数据类型、运算符与表达式

<
>
2,实型变量的分类
说明: C并没有具体规定每种类型的长度 并没有具体规定每种类型的长度, 说明:ANSI C并没有具体规定每种类型的长度,精度和数值 范围.下面是常用的C 范围.下面是常用的C编译系统的情况 类 型 字节数 有效数字 最小取值范围 float 4 6~7 -3.4*10-38~ 3.4*1038 double 8 15~16 -1.7*10-308~ 1.7*10308 long double 16 18~19 -1.2*10-4932~1.2*104932
8
取反
<
>
2.
整型变量分类
基本类型: 基本类型:int 根据数值的范围分为: , 根据数值的范围分为:int,short,long , 根据有无符号(singed/unsigned)及范围可分: 及范围可分: 根据有无符号 及范围可分
类 型 举例: 举例: [signed] int unsigned [int] [signed] short [int] unsigned short [int] [signed] long [int] unsinged long [int]
C 数 据 类 型
构造类型 指针类型 空类型 void
定义类型 typedef
<
>
2
2.2 常量与变量
一,标识符
定义:用来标识变量名,符号常量名, 定义:用来标识变量名,符号常量名,函数 数组名,类型名, 名,数组名,类型名,文件名的有效字符序 列称为标识符.(即一个名字) .(即一个名字 列称为标识符.(即一个名字) 使用规则
32767,32767,-32768,8
<
C语言第3章数据类型、运算符与表达式ppt课件

数据类型、运算符与表达式
1
主要内容
一、C的数据类型 二、常量与变量 三、基本数据类型 四、运算符与表达式
2
一、C的数据类型
(一) 什么是数据类型? (二) C语言的数据类型有哪些?
3
(一) 什么是数据类型?
对数据的描述
对操作的描述
数据结构+算法=程序
C语言中以 “数据类型”形式存在
4
所谓数据类型是按被定义变量的性质,表示形 式,占据存储空间的多少,构造特点来划分的。
int NUM=20; sum=PRICE*NUM;
11
符号常量优点
1、含义清楚。 2、在需要改变一个常量时,能够做到“一
改全改”
12
(二)变量
概念
变量代表内存中具有特定属性的一 个存储单元,它用来存放数据,也 就是变量的值。
13
(1)变量名。每个变量都有一个名字 ──变量名,代表一个地址。 (2)变量值。在程序运行过程中,变 量值存储在内存中。在程序中,通过 变量名来引用变量的值。
#include <stdio.h>
void main() {
int student,age; int if=adrress=1; float score=90;
stadent=2; Age=20; printf("%d %d %d %f",if,student,age,score); }
本程序中有 几处错误?
(5)标识符的有效长度随系统而异,如果超 长,则超长部分被舍弃。VC++6.0中规 定最大长度为247个字符。
23
请选出下列正确的标识符 M.D.John , 12%gf ,1add ,_ce36 ,age& 5thclass, lotus-1-2-3 , cd*ef , float,
C语言教程课件第二章 数据类型、运算符和表达式

例 整型变量的定义与使用
#include <stdio.h> void main() { int a,b,c,d; /*指定a、b、c、d为整型变量*/ unsigned u; /*指定u为无符号整型变量*/ a=12;b=-24;u=10; c=a+u;d=b+u; printf("a+u=%d,b+u=%d\n",c,d); }
例 向字符变量赋以整数。 • 运行结果: #include <stdio.h> a b void main() 97 98 { char c1,c2; c1=97; c2=98; printf("%c %c\n",c1,c2); printf("%d %d\n",c1,c2); }
• 说明:在第4和第5行中,将整数97和98分别赋给c1和c2,它 的作用相当于以下两个赋值语句: c1='a';c2='b'; 因为'a'和'b'的ASCII码为97和98
• 字符型变量用来存放字符常量,注意只能放一个字符。 • 字符变量的定义形式如下:char c1,c2; • 在本函数中可以用下面语句对c1,c2赋值: c1='a';c2='b'; • 一个字符变量在内存中占一个字节; • 将一个字符常量放到一个字符变量中,是将该字符的 相应的ASCII代码放到存储单元中,这样使字符型数据 和整型数据之间可以通用。一个字符数据既可以以字 符形式输出,也可以以整数形式输出。
运行结果: total=300 例2.1 符号常量的使用 #define PRICE 30 #include <stdio.h> void main ( ) 说明:如再用赋值语句给PRICE赋值是错的 { PRICE=40;/*错误,不能给符号常量赋值*/ int num, total; num=10; total=num * PRICE; printf(″total=%d\n ″,total); } 说明: 程序中用#define命令行定义PRICE代表常量30,此后凡在 本文件中出现的PRICE都代表30,可以和常量一样进行运算
数据类型、运算符与表达式

6.1 一维数组
例6.4程序中第一个for语句逐个输入10个数到数组a中,然后把a[0]送 入max中。在第一个for语句中,a[1]到a[9]逐个与max中的内容比 较,若比max的值大,则把该下标变量送入max中,因此max在己 比较过的下标变量中总是为最大者。比较结束,输出的max值即 为10个整数的最大值。
2.5 字符型数据
2.5.1 字符常量
1.字符常量的定义 用一对单引号括起来的单个字符,称为字符常量。例如,'
A','6','+'等。 2.转义字符
C语言还允许使用一种特殊形式的字符常量,就是以反斜杠 “\”开头的转义字符,该形式将反斜杠后面的字符转变成另外的 意义,因而称为转义字符。
下一页 返回
第2章 数据类型、运算符与表达式
2.1 C语言的数据类型 2.2 标识符、常量和变量 2.3 整型数据 2.4 实型数据 2.5 字符型数据 2.6 算术运算与算术表达式 2.7 赋值运算与赋值表达式 2.8 自增、自减与逗号运算
2.1 C语言的数据类型
C语言提供有丰富的数据类型。其数据类型及其分类关系如 图2-1所示。
int i,max,a【10」; printf(”input 10 numbers:\n");
上一页 下一页 返回
6.1 一维数组
for(1=0;1<10;1++) scanf(”%d”,&a[i]);
max=a[0]; for(i=1;i<10;i++)
if(a[i]>max) max=a[i]; printf("maxnum=%d\n",max);
形பைடு நூலகம்输出。
C语言程序设计 第2章 数据类型

2.2常量和变量 变量名与变量值的关系:
2.2常量和变量
变量的使用:先定义后使用
变量定义的一般形式:
数据类型 变量名1,变量名2,…,变量名n;
2.2常量和变量
➢ 凡未被事先定义的,系统不把它认作变量名,这就 能保证程序中变量名使用的正确
例:varname,在使用的时候误写成vaname
➢ 在定义变量时要指定变量的类型,在编译时就能为 变量分配相应的存储单元
5
2.2常量和变量
甘草 三七 干姜 葛根
枸杞 人参 陈皮 地黄
山药 当归 谷芽 黄连
贴上标签 加以区分
用标识符给变量起名字
2.2常量和变量 变量命名规则
➢ 只能由字母(a~z,A~Z)、数字(0~9)和下划线(_)构 成
➢ 第一个字符不能为数字 ➢ 不能与关键字同名
例:a9,_a, A_num √ 9a, a*num,int ×
控制语句:控制语句用于控制程序的流程。 C语言提供三类控制语句: ➢ 选择语句 ➢ 循环语句 ➢ 转移语句。 控制语句会在第三章和第四章详细介绍。
2.7 表达式与语句
复合语句: 复合语句由一对大括号括起来的一 条或多条语句组成。 例:{
turnOn(0,3); turnOn(0,4); turnOn(0,5); turnOn(1,4); }
2.7 表达式与语句
表达式语句:表达式末尾加上“;”就构成一条 表达式语句。 例:
s = 3.14 * r * r; 就是一条赋值表达式语句。表达式语句最后的 分号是语句中必不可少的一部分。
2.7 表达式与语句
函数调用语句:函数调用语句由函数调用加分 号构成。 例:
turnOn(1,1);
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。
第2章 C语言,数据类型、运算符和表达式
(C语言运算符总表见教材P26或P325附录C) return 31
C语言程序设计
算术运算符
+ - * / % 功能: 操作数要求: 结合性: 优先级: 注意事项: 算术运算 两个操作数 (当-用作负号时除外) 自左至右(当-用作负号时除外) -(负号) —— * / % —— + - (由高→低) ① 两个整数相除,结果为整数! 例: 3/2=1 ② %要求两个操作数均为整型数据! 且余数与被除数同号!
说明: ① 字符变量中存放的是字符ASCII码值! ② char与int数据间可进行算术运算!
char choice = 'A';
return24
C语言程序设计
字符串常量
字符常量是用双引号括起来的字符序列. 例如: "hello!" , "0" (1) 字符串常量在内存中的存储 (2) 字符串常量.vs.字符常量
整型
浮点型 字符型 说明:
① 数据类型所占字节数随机器硬件不同而不同! ② 可用sizeof(数据类型说明)来计算某一数据类型占内存的字节数! return
C语言程序设计 next part
2. 常量与变量
标识符命名 常量 变量
go go go
6
C语言程序设计
标识符命名
例: 判断下列标识符号合法性
next
ห้องสมุดไป่ตู้
20
C语言程序设计
字符常量
转义字符是用反斜杠\后面跟一个字符或一个八进制或十 六进制数表示的ASCⅡ码值。例如: '\n', '\101' (1) C语言中常用的转义字符 (2) 转义字符使用实例
C语言 数据类型、运算符与表达式
C语言A
整型数据的溢出
#include <stdio.h> void main() { int a,b; a=32767; b=a+1; printf(“%d,%d\n”,a,b); } 运行结果:32767,-32768
说明:数值是以补码表 示的。一个整型变量 只能容纳-32768~ 32767范围内的数, 无法表示大于32767 或小于-32768的数。 遇此情况就发生‚溢 出‛。
运行结果:total=300
量赋值。 */
C语言A
a
变量名 变量值 存储单元
二、变量
3
变量代表内存中具有特定属性的一个存储单
元,它用来存放数据,这就是变量的值,在 程序运行期间,这些值是可以改变的。 变量名实际上是一个以一个名字对应代表一 个地址,在对程序编译连接时由编译系统给 每一个变量名分配对应的内存地址。从变量 中取值,实际上是通过变量名找到相应的内 存地址,从该存储单元中读取数据。
C语言A
标识符:用来标识变量名、符号常量名、函
数名、数组名、类型名、文件名的有效字符 序列。
符号常量:在C语言中,可以用一个标识符
来表示一个常量,称之为符号常量。
符号常量在使用之前必须先定义,其一
般形式为:
#define 标识符 常量
C语言A
习惯上符号常量的标识符用大写字母,
变量标识符用小写字母,以示区别。 符号常量与变量不同,它的值在其作用 域内不能改变,也不能再被赋值。 使用符号常量的好处是:
例如:求-10的补码。 15
10的原码: 取反:
0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0
C语言程序设计第2章-1数据类型、运算符和表达式
2、 C 语言的运算符的优先级与结合性
3、表达式:由操作数和运算符组成的序列。
5
精品文档
⒉ 真值: 带符号位的机器数对应的数值称为机器数的真值。 (10100011)2= -35
⒊ 无符号数:当计算机字长的所有二进位都用来表示(biǎoshì)数值时,称 为无符号数。
2.2.2 原码、反码和补码
⒈ 原码
整数 X 的原码指:其数符位 0 表示正,1 表示负,其数值部分
就是 X 的绝对值的二进制表示。
2.1 常用 的进位制 (chánɡ yònɡ)
2.1.1 二进制、八进制和十六进制(shíliùjìn zhì)数
3
精品文档
2.1.2十、二进制、八进制和十六进制数之间的换算
⒈ 二、八、十六进制数 → 十进制数的换算采用按权展开法。
(2AB.F)16 = 2χ162+10χ161+11χ160+15χ16-1 = 683.93 ⒉ 十进制数 → 二进制数的换算整数部分(bù fen)采用除以二取余直到商
19
精品文档
2.5.1 算术运算符与算术表达式
⒈ 基本的算术运算符:
14
精品文档
3.字符常量
字符常量是用单撇号括起来的单个字符或转义字符,
如: ‘a’, ‘9’, ‘&’, ‘\n’, ‘\’’, ‘\101’。
字符常量的值为该字符的ASCII码值,如 ‘a’值为97, ‘\n’
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3. 字符型常量 在源程序中最基本的表示形式为: 单引号括起来的一个字符,如: 'a' 用于表示ASCII字符,见附录A。 在内存中存放对应的ASCII码值,如 'a' 的 ASCII码为 97,则在内存中用一个字节存放: 'A' '?'
01100001
南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
以上基本类型数据占内存字节不相同, 因此数值范围也不同,见表 2-1 及表 2-2
类型 标识 char int float double 名 称 字符型 整型 实型 双精度 实型 占用 字节数 1 4 4 8 取值范围 -128 ~ 127 -231~(231-1) -1038 ~ 1038 -10308 ~ 10308
< <= > >= == != 小于 小于等于 大于 大于等于 恒等于 不等于 优先级相同 (较高) 优先级相同 (较低)
南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
关系运算符及其优先级说明
高 算术 关系( <,<=,> 和 >= ) 低 关系( == 和 != )
a==b<c 等效于 a==(b<c) c>a+b 等效于 c>(a+b)
2. 实型常量(在内存中以浮点形式存放) (均为十进制,无数制区分) ① 小数形式 : 必须有小数点 1.65 1. .123
② 指数形式 (也称为科学表示法): 如 123000.0 可写为 1.23e5 0.00368 可写为 3.68E-3 e 或 E前必须有数字,1000写为 1e3 不
1. 整型常量 ① 十进制整数 ② 八进制整数 123, -456 0123, -011
③ 十六进制整数 0x123, -0xAB ④ 长整型与无符号型常数 12L, 0234L,-0xABL 12U, 0234U,0xABU
南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
2.3.2 符号常量 符号常量:用标识符代表一个常量, 必须先定义后使用。 例:定义标识符常量 #define PRICE 30 #define PI #define S 3.1425926 "China"
const f loat pi=3.14
常数
南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
2.2 C++ 的基本数据类型 基本类型 数据类型 导出类型 整型 单精度型 实型 双精度型 字符型 空类型(无值型) 数组类型 指针类型 结构体类型 共用体类型 枚举类型
不论是变量还是常数,在计算机内部都要按照某种 形式存放,存放形式由数据类型决定。
第 2 章 数据类型、运算符与表达式
2.1 保留字和标识符 2.2 C++的基本数据类型 2.3 常量和变量 2.4 基本运算符和表达式 2.5 类型转换
南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
[例1.1]一个简单的C++程序
#include <iostream.h> void main( void ) C++ 程序的构成: { (1)数据描述 int num, square ; cout << "num=" ; (2)执行步骤( 算法) cin >> num ; square = num*num; cout << "num的平方为:" << square << '\n'; }
南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
注意: (1) 区别大小写: 如 sum 与 Sum 为不同的变量名。 (2)先定义后使用: 分配单元 、确定类型、语法检查 (3)在一个程序单元中不能重复定义。 (4)关键字(保留字)不能作为标识符。 (5)最大长度随不同的 C++语言系统而定: VC++识别前 247 个字符,超过无效。 (6)按义取名。
南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
例: #include <iostream.h> 保留字 void main(void) { int a, b, sum; /* 定义变量 */ a=123; 标识符 b=456; (变量名、函数名、对象名) sum = a + b; cout<<"sum is "<<sum<<'\n'; }
南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
2.4 基本运算符和表达式 2.4.1 C++运算符及表达式简介 完成对常量、变量作运算的符号称为运算符。 把参与运算的对象称为操作数。 操作数可以是常量和变量等。 各种运算符见表 2-4 一元运算符、二元运算符、三元运算符
南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
2.3.3 变量
变量:其值可以改变的量。
变量名:一个变量的符号名,由标识符构成。 一个变量占据内存一定的存储单元, 在存储单元中存放该变量的值。 1. 定义变量 int a, b ; unsigned u ; float f ; double d ; char c1, c2, c3 ; // 定义2个整型变量a, b // 定义1个无符号整型变量u // 定义1个单精度实型变量 // 定义1个双精度实型变量 // 定义3个字符型变量c1, c2, c3
南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
4. 字符串常量---用双引号括起来的字符序列 (在内存中存放字符序列的ASCII码值,
最后加一个结尾标志)
如: "How do you do."
"CHINA"
"a" 'C' 'H' 'I' 'N' 'A' '\0'
…...
字符串结束标志符是: '\0' 注意: "a" 和 'a' 是不同的。
南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
注意:int 型变量与 unsigned int 型变量的区别 32 位 int 型: (补码) 符号位 32 位 unsigned int 型: 无符号位 范围 0~ (232 - 1) 范围 -231~ (231 - 1)
南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
2.4.2 算术运算符和算术表达式 基本算术运算符:
+ /
-
*
/
%
整数运算时为整除,结果为整数。
% (模运算或称求余运算) 必须为整型数据。
例: 7/3 结果? 2 7.0/3 结果? 2.333333…… 7%3 结果? 1
南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
由运算符和操作数构成表达式: 如:a + b a*(c+d) a*c+d 2.4.3 运算优先级和结合性 优先级: 对于同一表达式中出现多个运算符,先算 哪一个。 结合性: 在两种运算优先级相同时,“自左向右”还 是“自右向左”运算称为结合性。
南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
例2.1 符号常量的使用 #include<iostream.h> #define PI 3.1425926 void main(void) { double angle, radian; cin >> angle; radian = angle * PI / 180; //角度→弧度 cout << radian << '\n'; } 好处:(1)提高程序的可读性。 (2)程序中使用多处,一改全改。
关系运算符的结合性:自左向右
南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
2.4.5 逻辑运算符和逻辑表达式 逻辑运算符及其优先级:
C++ 语言提供三种逻辑运算符: 双目运算符 即有两个操作数 && 逻辑“与” 如 a&&b | | 逻辑 “或” ! 逻辑 “非” 单目运算符, 即只有一个操作数。 如!a
对于不可打印的字符,可以用转义字符形式表示 。
南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
转义字符:以反斜杠“\”引导的特殊形式的 非显示字符或表示特定意义的字符常量 '\n' '\t' '\b' '\\' '\ddd' '\xhh' 见表 2-3 注意:'\n' 与 'n' 的区别 !!! '\n' 表示一个控制字符, 'n' 表示一个字母。 注意:字母 A 的 ASCII 码是(65)10=(101)8=(41)16 在程序中表示字母A,可以有三种方法: 'A' '\101' '\x41'
2.3 常量和变量 2.3.1 常量 常量:在程序运行过程中,其值不能被改变的量 #include <iostream.h> void main(void) { int a, b, sum; /* 定义变量 */ a=123; 常量(常数) b=456; sum = a + b; cout<<"sum is "<<sum<<'\n'; }