第2章 数据类型运算符和表达式 C语言大学实用教程 苏小红课件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2021/6/27
C语言大学实用教程课件 制作人苏小红
24
sizeof到底是什么?
它是一个C语言的关键字,并不是函数 可以用两种形式使用 sizeof(表达式)
– 一般都使用sizeof(变量名) sizeof(类型)
求出的结果为表达式值所属类型或者类型 占用的字节数
– 现场演示程序
2021/6/27
C
第2章 数据类型、 运算符与表达式
sxh@
内容提要
基本数据类型; 常量和变量; 标识符命名; 常用运算符和表达式; 运算符的优先级与结合性
2021/6/27
C语言大学实用教程课件 制作人苏小红
2
例2.1:一个简单的C程序例子
#include <stdio.h>
/*函数功能:计算两个整数相加之和 入口参数:整型数据a和b 返回值: 整型数a和b之和
类型。
1+2+3+… 1!+2!+3!+… 13+23+33+…
– 如果不需要处理负数,则采用无符号类型。 – 在运算还没开始之前就判断运算数是否在合理的取值
范围内。如果超出,则停止运算,转错误处理。
2021/6/27
C语言大学实用教程课件 制作人苏小红
16
常数(Constant)
整型常数
– 18、-31 – long int型常量: 123l、123L、123456l、123456L – unsigned int型常量: 123u、 123U
P28, 例2.3
C语言大学实用教程课件 制作人苏小红
25
例2.3
#include <stdio.h>
main()
{
printf("Data type
Number of bytes\n");
printf("------------ ---------------------\n");
printf("char
"x"和’x’是不同的 <string.h>里定义了一系列专门的字符串处理函数
2021/6/27
C语言大学实用教程课件 制作人苏小红
21
2.5 变量
什么是变量?
一句话,变量是存储数据的值的空间.
变量都会有个名字,这个名字我们叫做标识符。
int i = 1;
变量中的“量”,即变量的值,是在程序执行过程中可以 改变、可以赋值的。
2021/6/27
C语言大学实用教程课件 制作人苏小红
4
标识符命名
标识符包含有:变量名,函数名
命名规则( P21 ),: 由英文字母、数字和下划线组成,大小写敏感
不可以是数字开头
直观,见名知意,便于记忆和阅读
– 最好使用英文单词或其组合 – 切忌使用汉语拼音 下划线和大小写通常用来增强可读性
UNIX 风格
– 不被初始化的变量,其值为危险的随机数
char esc = 'a'; int i = 1,j,k; int sum = 0; float eps = 1.0e-5;
2021/6/27
C语言大学实用教程课件 制作人苏小红
23
使用变量要注意
不要对变量所占的内存空间字节数想当然 – 用sizeof获得变量或者数据类型的长度
– 因为字母l和数字1容易混淆,所以当用l做后缀时,常使用
大写形式
2021/6/27
C语言大学实用教程课件 制作人苏小红
17
八进制与十六进制常数
以数字“0”开始的整型常数是八进制数 – 022、-037 – 010和10大小不一样
– 因为八进制并不常用,所以此种表示法比
较少见
以“0x”或者“0X”开始的整型常数是 十六进制 – A~F和a~f用来表示十进制的10~15 – 十六进制的形式比较常用 – 0x12、-0x1F, -0x1f
/*输入两个整型数x和y*/
sum = Add(x, y);
/*调用函数Add计算x和y相加之和*/
printf("sum = %d\n", sum);
/*输出x和y相加之和*/
} 2021/6/27
C语言大学实用教程课件 制作人苏小红
3
C程序常见符号分类
关键字(Keyword) – 又称为保留字,C语言中预先规定的具有固定含义的一些单词 – 数据类型修饰符int,控制语句return等
何谓类型溢出(Overflow)?
现象与危害:
– 溢出后的数值是可预料的,但不同平台会有所不同。
当程序从高位计算机向低位计算机移植(比如从64位 系统移植到32位系统)时,以前从不出现的溢出问题 可能出现。
2021/6/27
C语言大学实用教程课件 制作人苏小红
15
类型溢出的解决方案?
解决方案: – 预先估算运算结果的可能范围,采用取值范围更大的
13
何谓类型溢出(Overflow)?
C语言直接提供的任何类型都有取值范围。当向 其赋超过此范围的数值,就会产生数值溢出, 得到一个不正确的结果。 TC2中int的范围是-32768~32767 举例001.c
小蛇能吞下 大象吗?
2021/6/27
C语言大学实用教程课件 制作人苏小红 typeoverflow. 14
– variablename – variable_name – variableName
Windows 风格
不允许使用关键字作为标识符的名字
– int, float, for, while, if等 (具体查看附录B C关
键字)
某些功能的变量采用习惯命名 – 如:for语句所采用的循环变量习惯用i, j, k
2021/6/27
C语言大学实用教程课件 制作人苏小红
18
字符(Character)常数
字符常数的表示方法
– ’a’,’A’,’5’,’%’,’$’…… – 单引号内只能有一个字符,除非用“\”开头
就是一个普通字符,也可以参与各种数学运算
– 每个字符具有一个0~255之间的数值,可从ASCII
表查出
2021/6/27
C语言大学实用教程课件 制作人苏小红
7
数据类型(Data Type)
数据为什么要区分类型? 主要目的:是便于对它们按不同方式和要求进行处理。
不同类型的数据代表不同的 – 数据表示形式 – 合法的取值范围 – 占用内存空间大小 – 可参与的运算种类
2021/6/27
C语言大学实用教程课件 制作人苏小红
signed
– 用来修饰char、int、short和long,说明他们是有符
号的整数(正整数、0和负整数)。一般缺省都是有符号 的,所以这个修饰符通常省略
unsigned
– 用来修饰char、int、short和long,说明他们是无符
2021/6/27号的整数(正整C语数言大和学实0用)教程课件 制作人苏小红
2021/6/27
C语言大学实用教程课件 制作人苏小红
12
数据类型修饰符
short
– short int,短整数,一般2个字节长。通常简写为
short
long
– long int,长整数,一般是4个字节长。通常简写为
long
– long double,长双精度(高精度)浮点数,一般是10
个字节长。
浮点常数
– 十进制小数形式: 123.45、456.78 – 指数形式: 1e-2、4.5e3 //用字母e或者E来代表以10为底
的指数
– float型常量: 123.45f、 456.78F、1e-2f、4.5e3F – long double型常量: 123.45l、 456.78L、4.5e3L – 缺省为double
6
用于各种对象命名。建立定义和使用的联系。
语言里的名字称为标识符。
形式:字母/数字的连续序列,字母开头。 下划线“_”看作字母
标识符对字母大小写敏感:a和A是不同字母 ;ABC、Abc、AbC和abc是4个不同标识符
标识符示例: abcd sin Beijing C_Programming a3b06 a3b400n while _f2048 sx211_12a abc__ ____
符表示
2021/6/27
C语言大学实用教程课件 制作人苏小红
20
字符串(String)常数
用双引号括住的由0个或多个字符组成的字符序列 – "I am a string" – ""表示空字符串 – 转义字符也可以在字符串中使用 – 引号只作为字符串开始和结束的标志 – C语言内部用’\0’表示字符串的结束 – 除注释外,是唯一可以出现中文的地方
*/ int Add(int a, int b) {
return (a + b); }
/*主函数*/ main() {
int x, y, sum = 0;
程序注释
并列的两个函数 其中一个是 程序的入口
printf("Input two integers:");
scanf("%d%d", &x, &y);
1 KB == 1,024 B
2021/6/27
C语言大学实用教程课件 制作人苏小红
1 B == 8 b
10
b, B, KB, MB, GB, TB
一个位有多大? – 只能是“0”或者“1”,这叫二进制
一个字节有多大? – 保存一个字符(英文字母、数字、符号)
ASCII(美国标准信息交换码)编码 见P427附录D,常用字符与ASCII码对照表
%d\n", sizeof(char));
printf("int
%d\n", sizeof(int));
printf("short int
%d\n", sizeof(short));
printf("long int
%d\n", sizeof(long));
printf("float
%d\n", sizeof(float));
8
数据类型(Data Type)
数据类型
基本类型 构造类型
整型
基本整型 长整型 短整型 无符号整型
单精度实型
实型(浮点型)
字符型
双精度实型
枚举类型
数组类型
结构体类型
共用体类型
指针类型
空类型
2021/6/27
C语言大学实用教程课件 制作人苏小红
9
b, B, KB, MB, GB, TB
如何衡量数据类型所占空间大小?
bit,中文叫法:位 Byte,中文叫法:字节 Kilobyte(KB),中文叫法: K Megabyte(MB),中文叫法:兆 Gigabyte(GB),中文叫法:G
TerB == 1,024 GB
1 GB == 1,024 MB
1 MB == 1,024 KB
标识符(Identifier) – 系统预定义标识符,main,printf 等 – 用户自定义标识符,Add, x, y 等
运算符(Operator) – 34种,详见附录2
分隔符(Separator) – 空格、回车/换行、逗号等
其它符号
– 大花括号“{”和“}”通常用于标识函数体或者一个语句块 – “/*”和“*/”是程序注释所需的定界符 数据(Data) – 变量(Variable) – 常量(Constant)
printf("double
%d\n", sizeof(double));
}
P27, 例2.3
2021/6/27
C语言大学实用教程课件 制作人苏小红
26
为什么要用sizeof获得类型或 变量的字长?
– 注意:’5’和整数5的区别 – 字符的数学运算在密码学内用得比较多
用“\”开头的字符为转义字符(用于某些无法 通过键盘输入的控制字符)
– 例如,"\n",代表1个字符
2021/6/27
C语言大学实用教程课件 制作人苏小红
19
字符常数
转义字符 – 一些特殊字符(无法从键盘输入或者另有它用)用转义字
输出x和y相加之和并列的两个函数其中一个是程序的入口并列的两个函数其中一个是程序的入口程序注释2018919c语言大学实用教程课件制作人苏小红4c程序常见符号分类?关键字keyword又称为保留字c语言中预先规定的具有固定含义的一些单词数据类型修饰符数据类型修饰符int控制语句return等等?标识符identifier系统预定义标识符系统预定义标识符mainprintf等等用户自定义标识符用户自定义标识符addxy等等?运算符operator34种详见附录2?分隔符separator空格回车换行逗号等?其它符号大花括号和通常用于标识函数体或者一个语句块和是程序注释所需的定界符?数据data变量variable常量constant2018919c语言大学实用教程课件制作人苏小红5标识符命名标识符包含有
P45, 2.1
2021/6/27
C语言大学实用教程课件 制作人苏小红
5
C程序是基本字符的序列。基本字符包括: 数字(0~9) 大小写字母(a~z,A~Z) 标点符号
特殊字符:空格、换行、制表符(空白字符) ,起分隔作用。增删空白一般不影响程序的意 义
2021/6/27
C语言大学实用教程课件 制作人苏小红
使用变量的基本原则
– 变量必须先定义,后使用。变量定义的形式(书上P26):
类型关键字 变量名1[,变量名2,……]
– 所有变量必须在第一条可执行语句前定义
2021/6/27
C语言大学实用教程课件 制作人苏小红
22
变量声明
声明的顺序无关紧要 一条声明语句可声明若干个同类型的变量 声明变量,是初始化变量的最好时机
– 两个字节保存一个汉字
GB编码
2021/6/27
C语言大学实用教程课件 制作人苏小红
11
基本数据类型
int – 整数,在目前绝大多数机器上占4个字节。 – TC2中是2个字节 – VC中是4个字节
float – 单精度浮点数,一般是4个字节长
double – 双精度浮点数,一般是8个字节长
char – 字符,一般是1个字节长 – 用来表示256个ASCII字符,或者0~255的整数
相关文档
最新文档