数据类型、运算符和表达式 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,
第2章 c语言基本数据类型、运算符和表达式
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语言引入了“转义字符”。
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’
C语言教程第3章 数据类型、运算符与表达式
注意以下几点:
(4) 一个整常量后面加一个字母u,认为 是unsigned int型,如12345u,在内存 中按unsigned int规定的方式存放(存储 单元中最高位不作为符号位,而用来存 储数据,见图2.4(b)。如果写成-12345u, 则先将-12345转换成其补码53191,然 后按无符号数存储。
int a; unsigned int b;
一个整数(以13为例)在存储单元中 的存储情况
3. 整型变量的定义
int a,b; (指定变量a、b为整型) unsigned short c,d; (指定变量c、d为无符号短整型) long e,f; (指定变量e、f为长整型)
例3.2整型变量的定义与使用。
字符型变量用来存放字符常量,请注 意只能放一个字符,不要以为在一个字符 变量中可以放一个字符串(包括若干字符)。 字符变量的定义形式如下: char c1,c2;
c1='a';c2='b';
3.5.3 字符数据在内存中的存储 形式及其使用方法
字符的相应的ASCII代码放到存储单元中
例3.6向字符变量赋予整数。
单精度 ( float 型 占4B) 双精度 ( double 型 占8B )
C语言第3章数据类型、运算符、表达式
例如
➢字符常量‘a’占一个字节 ➢字符串常量"a" 占2个字节
‘a’ → “a” →
0110 0001 ……
0110 0001 0000 0000
(97)10
(97)10 (0)10
7.变量赋初值
变量赋初值
C语言允许定义变量时赋予初值。
➢int i = 6;
也可对某个变量赋初值:
➢int a, b, c = 6;
如: 0x16, 0x28
4.整型数据
整型变量
分类:
➢基本型 用“ int ”定义; ➢短整型 用“ short int ”或 “ short ”定义; ➢长整型 用“ long ”或 “ long int ”定义; ➢无符号型 用“ unsigned ”定义,不存放符号;
整型变量定义方式
➢基本整型:int a, b, c; ➢短整型 : short int 或 short a, b, c; ➢长整型: long int 或 long a, b, c; ➢无符号型:unsigned a, b; unsigned short a, b
10+‘a’+1.5–8765.1234 ‘b’
8.各种数值型数据间的混合运算
转换方法(自动转换)
double float
高
long
unsigned
低 int char, short
图中“ ” 表示必定转换。如'a' +' b',先转换为int,结果为 int。
既使是同一种类型也按" "转换。
对于“++”和“--”的使用要避免二义性
10.赋值运算符和赋值表达式
c语言-数据类型、运算符与表达式
c语⾔-数据类型、运算符与表达式⼀、数据类型1、概念(1)标识符1.定义:⽤来标记常量、变量、函数及⽂件名字的字符序列。
2.构成规则:只能由数字、字母、下划线三部分组成,且不能以数字开头,并且严格区别⼤⼩写,不能定义为系统中存在的关键字。
(2)关键字c语⾔中具有特定含义、专门⽤作语⾔特定成分的⼀类标识符注:在C语⾔中,所有的关键字都有固定的意义,不能⽤作其它,且所有的关键字都必须⼩写(3)c的数据类型数据是操作的对象,数据类型是指数据的内在表现形式(代码、存储、运算)(4)常量和变量1. 常量【1】常量:在程序运⾏过程中,其值不能被改变的量 常量区分为不同类型(表⽰形式),如:12、1.0、‘a’【2】符号常量:⽤⼀个标识符代表的⼀个常量定义⽅法:#define 标识符常量#define PRICE 30#include <stdio.h>void main(){int num,total;num = 10;total = num * PRICE;printf("total = %d",total);}2. 变量【1】变量:其值是可以改变的量,它⽤标识符(变量名)来表⽰,在内存中占据⼀定的存储单元变量的定义⽅法:类型符标识符注意事项:<1>见名知意 <2>先定义后使⽤ <3>习惯上,符号常量名⽤⼤写,变量名⽤⼩写,以⽰区别【2】变量赋初值变量先定义,后使⽤,⼀般放在函数开头变量初始化:可以在定义时赋初值2、整型数据(1)整型常量1. 各种进制的整数表⽰⽅法⼗进制整数:由数字0~9和正负号表⽰. 如 123,-456,0⼋进制整数:由数字0开头,后跟数字0~7表⽰. 如 0123,011⼗六进制整数:由0x开头,后跟0~9,a~f,A~F表⽰. 如 0x123,0xff2. 整型常量的类型【1】整型常量的值在-32768~+32767范围内,编译器认为是int类型【2】整型常量的值超过上述范围,⽽在-2147483648 ~ +2147483647范围内,编译器认为是long类型【3】当系统定义short int与int占内存长度相同,则两种类型常量均可以赋给 int和short int型变量【4】在整型常量后⾯加⼤写L或⼩写l,则告诉编译器,把该整型常量作为long类型处理。
C语言数据类型、运算符与表达式
整型数 1 1 1 1 1 1 1 1 无符号整型数 1 1 1 1 1 1 1 1
表示-1的补码 1 1 1 1 1 1 1 1 表示 的补码 1 1 1 1 1 1 1 1 表示数值 表示数值65535
6
整型数据
整型变量的定义 对变量的定义,一般是放在一个函数的开头部分的声明部分。 对变量的定义,一般是放在一个函数的开头部分的声明部分。 main( ) { int a, b, c, d; /* 定义整型变量 */ unsigned u; a = 12; b = -24; u = 10; c = a + u; d = b + u; printf( “a + u = %d \t b + u = %d \n”, c, d ); } 整型数据的溢出 如果一个整型变量存放的值,超出它所允许的范围,将会产生溢出, 如果一个整型变量存放的值,超出它所允许的范围,将会产生溢出, 例如一个into型变量,如果其值为 型变量, 就会产生溢出, 例如一个 型变量 如果其值为32767,再加 就会产生溢出, ,再加1就会产生溢出 变成-32768。但运行时并不报错。 变成 。但运行时并不报错。
• 字符数据的存放 以字符的ASCII码存放在存储单元中
97
C1
98
C2
01100001
C1
01100010
C2
13
字符型数据
• 例子 大小写字母的转换 main( ) {char c1,c2; c1=‘a’;c2=‘b’; c1=c1-32;c2=c2-32; printf(“%c %c”,c1,c2);} main() {into i; char c; i=‘a’;c=97; printf(“%c,%d\n”,c,c); printf(“%c,%d\n”,i,i);} 注意: 注意:1、字符型数据和整形数据是通用的。但字符数据只能 存放0~255范围内的整数。 2、字符数据与整数可以直接进行算术运算。 3、字符数据与整型数据可以相互赋值 4、Turbo C将字符数据处理成带符号的整数,如果不想 按有符号处理,可将字符变量定义为unsigned char类型。
C语言 数据类型、运算符和表达式
【例2. 3】整型数据的溢出 #include <stdio.h> 运行结果: int main(void) 若用Turbo C2.0编译器,其结果为: { X=32767,y=-32767 int x,y; 若用Visual C++6.0编译器,其结果为: x=32767; X=32767,y=32769 y=x+2; printf("x=%d,y=%d\n",x,y); return 0; } 这是由于Turbo C2.0的整型数据占2个字 Company Logo 节, Visual C++6.0的整型数据占4个字节
第2章 数据类型、运算符和表达式
本章内容
1
2 3
C语言的标识符和关键字
C语言的基本数据类型
运算符和表达式
4
数据的输入输出
Company Logo
学习目标
1
2 3 4 5 5
掌握C语言的标识符和关键字 掌握C语言的基本数据类型 掌握不同数据类型的转换
掌握各种运算符的使用方法及其优先级和结合性
掌握字符数据输入输出函数getchar和putchar的用法 掌握字符数据输入输出函数getchar和putchar的用法
\r \f \\ \' \" \a 回车 走纸换页 反斜杠字符'\' 单撇号字符 双撇号字符 报警,相当于’\007‟ 字符形式 功 能
\ddd
\xhh
1~3位8进制数所代表的字符
1~2位16进制数所代表的字符
演示
Company Logo
第2章 数据类型、运算符、表达式
第二章 数据类型、运算符、表达式一、数据类型C 语言中的数据类型比别的语言丰富。
基本类型的数据又可分为常量和变量,它们可与数据类型结合起来分类,即为整型常量、整型变量、实型(浮点型)常量、实型(浮点型)变量、字符常量、字符变量、枚举常量、枚举变量。
1、常量与符号常量常量:在程序执行过程中,其值不发生改变的量称为常量。
常量区分为不同的类型,如68、0、-12为整型常量,3.14,9.8为实型常量,‘a ’,‘b ’,‘c ’则为字符常量。
常量即为常数,一般从其字面即可判别。
符号常量:有时为了使程序更加清晰和便于修改,用一个标识符来代表常量,即给某个常量取个有意义的名字,这种常量称为符号常量。
如:#define PI 3.142、变量变量:程序执行过程中其值可以改变的量。
定义方法定义形式:数据类型 变量名1,变量名2,……变量名n ;整型(int )数据类型 基本类型 整型 单精度型(float )字符型(char )长整型(long )短整型(short )实型 双精度型(double )枚举类型(enum )共用体类型(union )构造类型结构体类型(struct )数组类型空类型(void )指针类型(*)如:char ch1, ch2; /* ch1,ch2为变量*/float x, y; /* x ,y 为实型变量*/int a, b, c; /* a,b,c 为整型变量*/在书写变量说明时,应注意以下几点:(1) 允许在一个类型说明符后,说明多个相同类型的变量。
各变量名之间用逗号间隔。
类型说明符与变量名之间至少用一个空格间隔。
(2) 最后一个变量名之后必须以“;”号结尾。
(3) 变量说明必须放在变量使用之前。
一般放在函数体的开头部分。
另外,也可在说明变量为整型的同时,给出变量的初值。
其格式为:类型说明符 变量名标识符1=初值1,变量名标识符2=初值2,...;3、数据在内存中的表示整型数据:以二进制的形式表示(1) int 类型正数: 如 123 (+123)用 16 位二进制(二个字节)表示原码 反码(原码同) 补码(原码同)最大正整数 215-1=214+213+212+211+210+29+2827+26+25+24+23+22+21+20=32767负数:如 –123原码补码(补码加 1)1取反加1 最大负整数-215=32768 因为 -215 < -(215-1) 所以用 -215 而不用 -(215-1)(2) unsigned (int) 类型称为无符号整数,它不是指不带“+ 或 -”号的整数,而是指内存表示这类数时没有符号位,16最大数215+214+213+2122+21+20=65535最小数 0 (3) long (int) 类型用 32 位二进制(四个字节)表示,其他同 int 型(4) short 类型有的计算机(小型、中型、大型机)int 即是 long ,而short 用16 位二进制(二个字节)表示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三章数据类型、运算符和表达式§3.1 C的数据类型§3.2 常量与变量§3.3 整型数据§3.4 浮点型数据§3.5 字符型数据§3.6 变量赋初值§3.7 数据类型转换§3.8 算术运算符和算术表达式§3.9 赋值运算符和赋值表达式§3.10 逗号运算符和逗号表达式小结课堂练习练习提示:预习第四章§3.1 C 的数据类型C语言提供了以下一些数据类型:数据类型指针类型空类型void构造类型数组类型结构类型struct ***联合类型union ***枚举类型enum ***基本类型整型int字符型char实型(浮点型)单精度实型float 双精度实型double 长双精度实型long double§3.2 常量与变量•一、常量在程序运行过程中,其值不能被改变的量称为常量常量区分为不同的类型:1.整型常量2.实型常量3.字符常量4.字符串常量5.符号常量6.枚举常量•二、变量–1.什么是变量–2.变量命名规则–3.定义变量时注意问题–4.变量的定义常量•1.整型常量–整型常量可用十进制、八进制、十六进制、无符号整型、长整型和无符号长整型表示。
–1234表示的是十进制数–01234表示的八进制数–0x1234表示的是十六进制数据,如果是长整型常量,后面还要加上l或L,如1234l或1234L。
•2.浮点型常量(实型常量)–如2.55,2.55E-5等。
浮点型常量有两种表示方法,小数表示法,如2.55;科学计数法,如2.55E-5,其中的E可用e,表示2.55×10-5。
常量•4.字符串常量如”a”、”aaa”、”123”等。
字符串常量必须用双引号引起来。
注意:字符串常量与字符常量不同,字符串常量必须用双引号引起来,而字符常量用单引号引起来;字符串常量如”x”在存储器内部存储的字符序列为”x\0”,’\0’(NULL )是串结束符,而字符常量如’x’在存储器内部存储的只是字符x 。
•3.字符常量–用一对单撇号括起来的单个字符。
这里所指的单个字符可以是英文大、小写字母(A ~Z ,a ~z )、数字字符(0~9)和特殊字符等。
–如:’a’、’\n ’、’3’、’L’。
常量•5.符号常量–用一个标识符代表一个常量,即标识符形式的常量,称为符号常量。
例3.1–符号常量的值在其作用域内不能改变,也不能被再赋值,这与变量不同。
习惯上,符号常量用大写字母,变量名用小写字母加以区别。
–使用符号常量可以做到见名知义,增加程序的可读性,简化书写;修改方便,需要时“一改全改”。
•思考:下列常量各是什么常量?•123L 1.0E-5 ”a”’a’PI(假设已用#define定义)•6.枚举常量(第11章介绍)例3.1 符号常量的使用运行结果:total=300说明:程序中用#define命令行定义PRICE代表常量30,此后凡在本文件中出现的PRICE都代表30,可以和常量一样进行运算说明:程序中用#define命令行定义PRICE代表常量30,此后凡在本文件中出现的PRICE都代表30,可以和常量一样进行运算说明:如再用赋值语句给PRICE 赋值是错的PRICE=40; /* 错误,不能给符号常量赋值说明:如再用赋值语句给PRICE 赋值是错的PRICE=40; /* 错误,不能给符号常量赋值符号常量: 用一个标识符代表一个常量。
符号常量的值在其作用域内不能改变,也不能再被赋值。
符号常量: 用一个标识符代表一个常量。
符号常量的值在其作用域内不能改变,也不能再被赋值。
#define PRICE 30 #include <stdio.h>void main( ) { int num,total; num=10; total=num*PRICE; printf(”total=%d\n”,total); } 1.什么是变量?变量代表内存中具有特定属性的一个存储单元,它用来存放数据,这就是变量的值,在程序运行期间,这些值是可以改变的。
如有定义:float price=5.0;•变量名(如price )和类型(如float )告诉编译系统为float 型变量price 分配4个字节的内存空间,并将一个实型数值5.0存储在该内存空间内。
在源程序中可以使用变量名去”访问”该变量,对变量的”访问”操作,包括读取变量值的操作和给它赋予新变量值的操作。
二、变量内存地址变量值(5.0)→(9.0)变量名price变量名price的内存空间(4个字节)例如:printf(”price before change=%f\n”,price);price=9.0;printf(”price after change=%f\n”,price);例如:printf(”price before change=%f\n”,price);price=9.0;printf(”price after change=%f\n”,price);2.变量命名规则变量命名的规定:C语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。
变量名是标识符的一种。
例:判断下列变量命名是否正确:sum ,lotus_1_2_3,M.D.John, _total, month, Student_name ,a 2,BASIC, a>b ,li_ling ,变量_a ,¥123,3D64,2sum ,lotus_1_2_3,_total,month,Student_name ,BASIC, li_ling M.D.John ,a>b ,变量_a ,¥123,3D64, a 233.启用变量名时注意(1)编译系统将大写字母和小写字母认为是两个不同的字符。
(2)建议变量名的长度最好不要超过8个字符。
(3)在选择变量名和其它标识符时,应注意做到”见名知意”,即选有含义的英文单词(或其缩写)作标识符。
(4)要求对所有用到的变量作强制定义,也就是”先定义,后使用”。
启用变量名时注意(5)变量名的启用不要与语言系统的关键字(全部为小写字母)相同,也不要与系统标准函数库中的函数名、宏名和变量名相同。
auto double int structbreak else long switchcase enum register typedef char extern return unionconst float short unsigned continue for signed voiddefault goto sizeof volatile do if static while启用变量名注意(6)常规建议:即在标准并没有作硬性规定,但习惯上大家都遵守的规则:•①变量名用英文小写字母,常量名用英文大写字母。
例如:#define SIZE 60•②以下划线开头的变量名(或函数名)表示的是标准函数库内自行调用的变量(或函数),通常用户不能调用。
例如:_iobuf/*Input/Output Buffer,输入/输出缓冲器*/ _flag /*程序中所用的软件标志*/4、变量的定义•任何变量在使用之前必须用说明语句加以定义,在运算之前必须赋以初值,因此,变量具有4个基本要素:存储类型(存储的属性)、名字、数据类型和值。
定义完整格式:•[<存储类型>]<数据类型> 变量名[=初值]存储类型用来说明变量的存储特性,变量的存储类型可以是auto 、static 、extern 和register 四种,而关键字auto 可缺省,当一个函数内变量的存储类型没有指明时,系统默认存储类型为自动型(定义但未赋初值的自动变量,存放的是随机值)。
**有关存储类型的概念在第八章讨论。
存储类型用来说明变量的存储特性,变量的存储类型可以是auto 、static 、extern 和register 四种,而关键字auto 可缺省,当一个函数内变量的存储类型没有指明时,系统默认存储类型为自动型(定义但未赋初值的自动变量,存放的是随机值)。
**有关存储类型的概念在第八章讨论。
<存储类型>变量的类型可以是各种基本数据类型,如char 、short 、long 、unsigned 、unsigned short 、unsigned long 、float 、double 等,也可以是其它构造类型。
变量的类型决定了该变量所占内存空间的大小(以字节数为单位表示)变量的类型可以是各种基本数据类型,如char 、short 、long 、unsigned 、unsigned short 、unsigned long 、float 、double 等,也可以是其它构造类型。
变量的类型决定了该变量所占内存空间的大小(以字节数为单位表示)<数据类型>变量的值。
任何变量必须具有值才能参加运算和操作。
既可以在定义变量的同时给它赋初值,称为“初始化”操作,也可以在定义时不赋值,而用赋值操作给它赋值。
在初始化或赋值时应注意:变量的值。
任何变量必须具有值才能参加运算和操作。
既可以在定义变量的同时给它赋初值,称为“初始化”操作,也可以在定义时不赋值,而用赋值操作给它赋值。
在初始化或赋值时应注意:[=初值]变量的定义(1)初始化:double price=15.5;赋值:int a;……a=9;(2)可在一个说明语句内定义多个同一类型的变量,其方法为在变量名部分写上多个变量名,用逗号将它们隔开。
int a,b,c,d;double as=12.7,ad=23.4,pi=3.14159;•但在ANSI C++(ANSI C中同样)中,不允许用如下形式对几个变量赋予同一初值:int a=b=c=d=9;应该采用分别初始化或先定义再赋值的方法:int a=9,b=9,c=9,d=9;或者:int a,b,c,d;a=b=c=d=9;变量的定义•5.在C语言中,对所有的变量都遵循”先定义,后使用”的原则。
因为:–(1)保证程序变量名使用的正确性:凡未被事先定义的标识符,不能作为变量名。
–(2)编译时为该变量分配相应的内存单元:如指定a、b分别为short型和float型,系统在编译时为a分配2个字节,为b分配4个字节。
–(3)在编译时检查该变量所进行的运算是否合法:如整型变量a和b,可以进行求余运算:a%b,但对于实型变量则不能进行该运算。
–(4)从变量的存储类型上知道该变量存放的位置,知道它的作用域和寿命。
§3.3 整型数据一、整型常量的表示方法整型常量即整常数。
在C语言中,整常数可用以下三种形式表示:1.十进制整数。