第二章 基本数据类型和运算符
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,可以和常量一样进行运算
C语言程序设计教程-第2章

2.2.2 变量 1.变量及定义 一个变量有三个要素:变量名、数据类型和存储类型。 变量的数据类型包括char,int,float,double,void五种。 存储类型决定了变量的生命期和作用域。它包括自动型变量(auto)、 寄存器变量(register)、静态型变量(static)、外部参照变量(extern) 四种。 存储类型符 数据类型符 变量名 例如: static int a float b double a,b 2.变量的初始化 存储类型符 数据类型符 变量名=初值 变量赋初值示例如下: static int a=100; double b=3.245;
2.自增自减运算符 自增运算符记为“++”,其功能是使变量的值自增1。自减1运算符记为“--”, 其功能是使变量值自减1。自增自减运算符均为单目运算,都具有右结合性。 可以有以下几种形式: ++i,i自增1后再参与其他运算。 --i,i自减1后再参与其他运算。 i++,i参与运算后,i的值再自增1。 i--,i参与运算后,i的值再自减1。 main() { int i=5,p,q; printf("%d\n",i++); printf("%d\n",i--); printf("%d\n",++i); printf("%d\n",--i); p=(i++)+(++i); q=(--i)+(i--); printf("%d,%d,%d\n",i,p,q); }
13
2.逻辑运算符 逻辑运算符是对逻辑量进行操作的运算符。逻辑量也只有两个值,1和0, 分别表示“真”和“假”。 C语言的逻辑运算符有: !(逻辑非) &&(逻辑与) ||(逻辑或)
C语言各章节知识点总结

C语言各章节知识点总结C语言是一种常用的编程语言,广泛应用于操作系统、嵌入式系统、网络设备等领域。
下面是C语言各章节的知识点总结。
第一章:C语言概述1.C语言的起源和发展历史。
2.C语言的特点和优势。
3.C语言的应用领域和重要性。
4.C语言的编译过程和基本语法规则。
第二章:基本数据类型和运算符1.C语言的基本数据类型,如整型、浮点型、字符型等。
2.基本数据类型的存储范围和格式化输出。
3.C语言的运算符和运算符优先级。
4.表达式和赋值语句。
第三章:控制语句1. 条件语句,如if语句、switch语句。
2. 循环语句,如for循环、while循环、do-while循环。
3. 循环控制语句,如break语句、continue语句。
第四章:数组和指针1.数组的定义和初始化。
2.一维数组和二维数组的使用。
3.字符数组和字符串的处理。
4.指针的定义和操作。
5.数组和指针的关系。
第五章:函数1.函数的定义和调用。
2.函数的参数传递和返回值。
3.局部变量和全局变量。
4.递归函数和函数指针。
5.函数库的使用。
第六章:结构体和共用体1.结构体的定义和初始化。
2.结构体的访问和操作。
3.结构体数组和结构体指针。
4.共用体的定义和使用。
第七章:文件操作1.文件的打开和关闭。
2.文件的读写操作。
3.文件指针和文件的定位。
4.随机访问文件。
5.文件的错误处理和异常处理。
第八章:预处理和编译1.C语言的预处理指令和宏定义。
2.头文件的引用和包含。
3.条件编译和预处理器的工作过程。
4.编译和链接的过程。
第九章:动态内存管理1.动态内存分配和释放。
2. malloc函数和free函数的使用。
3.内存泄漏和内存溢出的问题。
4.堆和栈的区别和管理。
第十章:指针的高级应用1.指针数组和指向指针的指针。
2.函数指针和回调函数。
3.结构体指针和链表的操作。
4.动态内存分配和指针的应用。
第十一章:位运算和位域1.位运算的基本操作,如与、或、非、移位等。
数据类型与运算符

数据类型与运算符
本章要点
目标
理解:常量、变量和表达式。 掌握:Java中的八种原始数据类型。 掌握:运算符和表达式的应用。
重点
掌握:熟练使用整型、浮点型、字符型常用的数据类型的定义,表示 和引用。 掌握:算术运算符、关系运算符和逻辑运算符的应用。 掌握:自增、自减运算符的不同用法。
用4位16进制数表示字符
双引号 单引号 反斜线 用3位8进制数表示字符
数据类型与运算符
2.3 运算符和表达式
运算符是表明作何种运算的符号。 操作数是被运算的数据。 表达式是由操作数和运算符组成的式子。 表达式的运算结果称为表达式的值。 Java提供的运算符,按操作数的数目来分,可有: 一元运算符:需要一个操作数。++i,--i,+i,-i 二元运算符:需要二个操作数。a+b,a-b,a>b 三元运算符:需要三个操作数。表达式1 ?表达式2 : 表达式3
数据类型与运算符
2.2数据类型
每个数据类型都有一个值域,或者叫做范围。编译器根据变量或常 量的数据类型对其分配存储空间。Java为数值、字符值和布尔值数 据提供了几种基本数据类型。Java语言的数据类型划分如图2-1。
字节型byte
整数类型 短整型short 整型int 长整型long 基本数据类型 浮点类型 数据类型 字符类型char 布尔类型boolean 类class 单精度浮点型float 双精度浮点型double
若运算符是前置于变量的,则变量先加1或减1,再参与表达式中的运算。 若运算符是后置于变量的,则变量先参与表达式的运算,再加1或减1。 例如:
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。
chap2 基本数据类型、操作符和表达式

The latter form takes more space, but is convenient for adding a comment to each declaration for subsequent modifications. — K&R:P39
2.2.2 整型变量
整型变量在计算机内存中一般占两个字节或四个 字节。我们可以用sizeof(int)来测试。 用以说明整型变量的关键字(也称为数据类型符) 为int。定义变量数据类型语句的一般格式为: 数据类型符 变量名1,变量名2,… C语言规定,每个变量在使用前,都必须先定义。 int a,b;
— K&R:P36
The value of an integer can be specified in octal or hexadecimal instead of decimal. A leading 0 (zero) on an integer constant means octal; a leading 0x or 0X means hexadecimal. For example, decimal 31 can be written as 037 in octal and 0x1f or 0x1F in hex. Octal and hexadecimal constants may also be followed by L to make them long and U to make them unsigned: 0XFUL is an unsigned long constant with value 15 decimal.
There are some restrictions on the names of variables and symbolic constants. Names are made up of letters and digits; the first character must be a letter. The underscore ``_'' counts as a letter; it is sometimes useful for improving the readability of long variable names. Don't begin variable names with underscore, however, since library routines often use such names. Upper and lower case letters are distinct, so x and X are two different names.
第2章数据类型、运算符和表达式

(2)预定义的标识符 预定义的标识符在C语言中都有特殊含义,如 scanf和 printf 是库函数名,系统中用来作为输入输出函数。用户一般不要用 它们作为自定义标识符。 (3)用户自定义标识符 在程序中使用的变量名、符号常量名、函数名、数组名、类 型名、文件名、标号名等有效的字符序列,除库函数的函数名、 关键字由系统定义外,其余都由用户自定义,统称为用户自定 义标识符。 例如: total,area,_ab,sum,average,student_name,等 都是合法的标识符。 标识符虽然可由程序员随意定义,但标识 符是用于标识某个量的符号。因此,命名应尽量有相应的意义, 以便阅读理解,做到“见名知义”。 变量名要用小写字母,符号常量名要用大写字母。即在标识 符中,大小写是有区别的。例如:A和a是两个不同的标识符。
数据类型 类型说明符 数值范围
整型 int -32768~32767 -215~215-1 0~65535 -32768~32767 -215~215-1
字节
2 2 2 2 4
无符号整型 unsigned int 短整型 short
无符号短整 unsigned short 型 long 长整型 无符号长整 unsigned ong 型
2.2.4 字符串常量
字符串常量是由一对双引号括起的字符序列。例如: "CHINA" ,"C program." , "$12.5" 等都是合法的字符串常 量。字符串常量和字符常量是不同的量。它们之间主要有以下 区别: ①字符常量由单引号括起来,字符串常量由双引号括起来。 ②字符常量只能是单个字符,字符串常量则可以含零个或多个 字符。
3、十进制整常数 十进制整常数没有前缀。其数码为0~9。 以下各数是合法的十进制整常数:237,-568 ,65535 4、整型常数的后缀 在16位字长的机器上,基本整型的长度也为16位,因此表 示的数的范围也是有限定的。十进制无符号整常数的范围为 0~65535,有符号数为-32768~+32767。如果使用的数超过了 上述范围,就必须用长整型数来表示。长整型数是用后缀“L” 或“l”来表示的。例如: 十进制长整常数 158L (十进制为158) 358000L (十进制为358000) 八进制长整常数 012L (十进制为10) 077L (十进制为63) 0200000L (十进制为65536) 十六进制长整常数 0X15L (十进制为21) 0XA5L (十进制为165) 0X10000L (十进制为65536
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2013-8-9
程序设计基础教程(C语言)
14
实型常量
3、实型常量(浮点数) 十进制数形式的浮点数:由数字和小数点组成。 如:123.456、0.123、123.0、0.0、123.等。 指数形式的浮点数:用字母e表示十进制指数中 的10。 如:123e3(表示123*103)、6.E5、.123e+4都 是合法的浮点常量。 注意:e字母前必须有数字,且e后的指数必须为整 型。 如:e3、2.1e3.5、.e3为不合法。
2013-8-9 程序设计基础教程(C语言) 15
实型常量
浮点常量如不带后缀,如上所示,都是双精度类
型(double)。
浮点常量可带后缀f或F,如3.14f,那么其类型
为单精度浮点型(float)
浮点常量可带后缀l或L,如3.14L,那么其类型
为长双精度型(long double)
2013-8-9
程序设计基础教程(C语言)
30
(2) 转换控制部分
以%开头用转换字符(英文小写字母)结束的部分, 称之为“转换说明符”。其格式为: “% W.N [修饰符l或L] 转换字符”
例:printf(“%d”,100);
转换字符:又称“转换说明符”,常用的转换说明符 及其含义如表2.10所示。
2013-8-9
4、数据输入和输出 printf( ) 的功能:按照指定格式将需要输出的数据在标 准输出设备上输出。 它的一般格式: printf (输出控制,输出数据表列);
(1) 输出控制表示由双引号括起来的格式转换控制信息。 它分为两种形式的信息。 一种是用于说明的,计算机会原样输出的信息。 另一种是带有前置百分号(%)的格式转换说明,用户用它指 定输出数据的格式。 (2) 输出数据表列表示需要输出的一些数据。各数据之间 用逗号分隔。
2013-8-9
程序设计基础教程(C语言)
26
3、左值和右值: 左值(lvalue):在C语言中表示位于赋值运算符左 边的值,左值通常指可以定位的值,即有地址的值, 可以用来存储其它的值 。 右值 (rvalue) : 在C语言中表示位于赋值运算符右 边的值。
例: int i=5;
…… 地址 A012H (左值) 5 …… 数据内容 (右值) 变量i
程序设计基础教程(C语言)
16
4、字符常量:
C语言规定以单引号‘’包围的单个字符为字符常量。
如:‘A’、‘a’、‘2’ 、’!‟等。 注意:
请区别‘A’和‘a’的不同; ‘
’中的字符引用的是该字符的ASCII码值。
字符常量的存放形式与整数的存放形式相类似,故C 中的字符数据与整型数据之间具有相通性。
程序设计基础教程(C语言) 29
2013-8-9
⑴ 照原样输出的部分, 如: printf(“\“Visual C++ 6.0\””);
在显示器上输出
“Visual C++ 6.0”
要原样输出双引号”、单引号‘和反斜杠\都必须 在其前面加上一个反斜杠,要原样输出%则必须用两 个%。
2013-8-9
2013-8-9
程序设计基础教程(C语言)
7
二、词法约定
C语言中单词形式:注释符、运算符、标点符、关键字和标识符。 (1)注释符 以“/*”开头、“*/”结束;或者用“//”注释当前行 (2)运算符 C语言中含有相当丰富的运算符。运算符与变量、函数一 起组成表达式,表示各种运算功能。运算符由一个或多个字符 组成。 (3)标点符 C语言中的标点符共有13个,即: [ ] ( ) { } * , : = ; . #
2013-8-9
程序设计基础教程(C语言)
17
字符常量 转义字符常量(也称控制字符常量) 用‘\‟开头的特殊形式的字符常量,用以产 生一个动作。 如:‘\n‟、 ‘\r‟、’\t‟、’\v‟、’\\‟、’\123‟等。 请同学们理解并记忆常用的转义字符,学 会其使用方法。
2013-8-9
程序设计基础教程(C语言)
2013-8-9
程序设计基础教程(C语言)
6
图形符号:29个图形(可见)符号, 即
! “ # % & „ ( ) * + , . / ; : < = > ? [ \ ] ^ { | } ~ 主要用作各种运算符。
转义字符:程序中有时需要用到某些不可见或难 以打印的字符,C语言中采用转义字符来表示,如: “\n”表示一个换行符;字符’\‟被称为转移符, 表示其后的字符n具有特定的含义。
2013-8-9
程序设计基础教程(C语言)
12
2.1基本数据类型 2.1.2常量
1、常量的定义:在程序运行过程中,其值保持不变的量
常量的类型:根据字面形式可将常量区分为不同的类型。
2、整型常量:
C语言表示整型常量的方法有以下三种:
十进制整数:不带任何修饰。如123、-456、0等; 八进制整数:以数字0开头。如0123、-011等; 十六进制整数:以数字0x开头。如0x123、0x2ef;
短整型
整型 (int)
数值型
长整型 无符号整型
无符号长整型 无符号短整型
单精度浮点型(float) 浮点型 基本数据类型 长双精度浮点型 无符号字符型 字符型 (char)
2013-8-9
双精度浮点型(double)
有符号字符型
程序设计基础教程(C语言) 4
数据在内存中存放,存放的格式由数据类 型决定。各种数据类型所包含的二进制位数 (bit,比特数)是不同的。
数据类型的长度通常都是采用所占用的内 存空间字节数来表示。
2013-8-9
程序设计基础教程(C语言)
5
关键字、标识符和保留标识符
一、字符集 C语言中可用到的字符集有: 数字:0、1、…………、9。 字母:大、小写英文字母,注意C程序中严格区分 大小写字母,如 A和a是不同的字符。 空白符:空格符、制表符、换行符和换页符统称为 空白符。它们主要用于分隔单词,一般无其它特殊 意义。
18
转义字符常量
转义字符 \n \t \v \b \r 功能 换行 横向跳格 竖向跳格 退格 回车
注:横向和纵向跳格均 以8个字符为1格。
\f
\\ \‟
走纸换页
“\”字符 单引号字符
\”
\a \ddd
双引号字符
响铃 1至3位八进制数所代表的字符
\xhh
2013-8-9
1至2位十六进制数所代表的字符
例:#define PRICE 30
在程序任何用到PRICE符号常量的地方,系统将 自动用常量30代替。 3)使用要点: 为区分符号常量与变量的不同,通常符号常量用
大写字母表示(但不是必须)。
2013-8-9 程序设计基础教程(C语言) 22
2.1.3 变量
1、变量的含义: 在程序执行过程中,其值可以被改变的量。 变量的构成:变量名、变量值。
量。虽然它们也是合法的标识符,但是用它们来
做一般标识符就可能会出问题。
2013-8-9
程序设计基础教程(C语言)
10
试判断下列标识符正确与否:
abcd A? Abcd 2abc _Abcd a b _2a3 yes/no πr
2013-8-9 程序设计基础教程(C语言) 11
(6) 关键字:又称保留字,指具有特定含义、专门用作系
2013-8-9
程序设计基础教程(C语言)
13
整型常量
C语言中普通整型常量在机器中占用一个字长。
整型常量后缀
无符号整型后缀:u或U,如986u、0xfedU都是无
符号整型常量。 长整型后缀:l或L,如:02341l、9666L都是长整 型常量。 二者可以同时使用,例如:9999LU、 077777LU
2013-8-9 程序设计基础教程(C语言) 20
要点:请区别”A”与’A‟的不同。 因为它们各自在内存中存放的长度不同。 “A” „A‟
A \0 A
ASCII码为0的字符
2013-8-9
程序设计基础教程(C语言)
21
6、符号常量
1)含义:用一个标识符表示的常量。
2)定义方法:#define 符号常量 数值
程序设计基础教程(C语言)
第二章 基本数据类型 和运算符
本章重点
1. 2. 3.
4. 5.
6. 7. 8.
9.
掌握C的几种基本数据类型。 掌握标识符的概念,熟悉变量和符号常量先定义后使用特点。 熟练掌握整型、长整型、短整型、无符号整型数据的定义与 存储特点。 熟练掌握单精度、双精度浮点数的定义与存储特点。 熟练掌握字符型数据的的定义与存储特点,并熟悉整型数据 与字符型数据间的关系。 掌握定义变量的同时,赋初值的方法。 掌握不同类型数据间的混合运算规则。 掌握不同运算符(算术、关系、逻辑运算符等)的使用特点、 清楚每种运算符的优先级与结合性. 掌握各种表达式的含义与使用要点。
2013-8-9
程序设计基础教程(C语言)
27
3、左值和右值:
① x = 5;
② 5 = x;
C中有些运算符仅仅需要操作数需要右值,例如 “+”的两侧、赋值运算符的右边; 有些运算符仅仅需要左值,例如赋值运算符“=”的 左边; 有些运算符需要操作数同时有右值与左值的角色, 例如++或--。
2013-8-9 程序设计基础教程(C语言) 28
程序设计基础教程(C语言) 19
5、字符串常量 C语言中用双引号将一串字符括起来称为 字符串常量。 如 “asee”、 “011”、“We are studying C”等。 字符串常量可以看作是一个数组,这个数 组的每个元素是一个字符。 编译程序在编译源程序时自动在每个字符 串末尾放空字符‘\0‟,作为字符串结束标记。