d02C语言的基本数据类型与表达式.ppt_第1页
d02C语言的基本数据类型与表达式.ppt_第2页
d02C语言的基本数据类型与表达式.ppt_第3页
d02C语言的基本数据类型与表达式.ppt_第4页
d02C语言的基本数据类型与表达式.ppt_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言的基本数据类型 常量与变量 运算符与表达式 数据类型转换,C语言的基本数据类型与表达式,数据类型(Data Type),数据为什么要区分类型? 不同类型的数据代表不同的 数据表示形式 合法的取值范围 占用内存空间大小 可参与的运算种类,数据类型(Data Type),基本数据类型,int 整数,在目前绝大多数机器上占4个字节 TC中是2个字节 VC中是4个字节 float 单精度浮点数,一般是4个字节长 double 双精度浮点数,一般是8个字节长 char 字符,一般是1个字节长 用来表示256个ASCII字符,或者0255的整数,基本数据类型,short short int,短整数,一般2个字节长,通常简写为short。 long long int,长整数,一般是4个字节长。通常简写为long。 long double,长双精度(高精度)浮点数,一般是10个字节。 signed 用来修饰char、int、short和long,说明他们是有符号的整数(正整数、0和负整数),通常情况下该修饰符缺省。 unsigned 用来修饰char、int、short和long,说明他们是无符号的整数(正整数和0)。,何谓类型溢出(Overflow),C语言直接提供的任何类型都有取值范围。当向其赋超过此范围的数值,就会产生数值溢出,得到一个不正确的结果。 TC中int的范围是-3276832767 如果超出取值范围,给它一个小于-32768或者大于32767的数会如何呢?现场编程测验,小蛇能吞下大象吗?,typeoverflow.c,常量,是指在程序运行中,其数值不能被改变的量,整型常数,int型常量:18、-31(十进制) long int型常量: 123456L、 123456l、123L、123l unsigned int型常量:123u、123U 八进制常量:以数字0开头的整数 例如:012=1*81+2*80=10(十进制) 十六进制形式:以0x开头的整数 例如:0x12=1*161+2*160=18(十进制),实型常数,十进制小数形式:123.45、456.78 指数形式:1e-2、4.5e3 float型常量:123.45f、 456.78F、1e-2f、4.5e3F long double型常量:123.45l、 456.78L、4.5e3L 缺省为double 因为字母l和数字1容易混淆,所以当用l做后缀时,常使用大写形式,字符常数,字符常数的表示方法 a,A,5,%,$ 单引号内只能有一个字符,除非用”开头 就是一个普通整数,也可以参与各种数学运算 每个字符具有一个0255之间的数值,可从ASCII表查出 注意:5和5有本质的区别 字符的数学运算在密码学内用得比较多 用”开头的字符为转义字符 例如:”n”,代表1个字符,其含义是换行,转义字符,一些特殊字符(无法从键盘输入或者另有它用)用转义字符表示。,字符串String常数,用双引号括住的由零个或多个字符组成的字符序列 “I am a string“ “表示空字符串 转义字符也可以在字符串中使用 引号只作为字符串开始和结束的标志 C语言内部用0表示字符串的结束 除注释外,是唯一可以出现中文的地方 “x“和x是不同的 里定义了一系列专门的字符串处理函数,符号常量,含义:用标识符定义一个常量,也叫做宏常量,通常用大写字母表示。 一旦某个标识符被定义成为一个常量后,以后在程序处理时,该标识符都代表对应的常量值。 定义格式:#define 标识符 常量数据 #define MAX 1000 #define MIX 10 #define PI 3.14,计算圆的周长和面积prg2-2.c,#include void main() printf(“circumference = %fn”, 2*3.14*3.5); printf(“area = %fn”, 3.14*3.5*3.5); ,计算圆的周长和面积prg2-2.c,#include #define PI 3.14 #define R 3.5 void main() printf(“circumference = %fn”, 2*PI*R); printf(“area = %fn”, PI*R*R); ,变量,是指以标识符为名字,其值可以改变的量 定义形式:类型标识符 变量名1, 变量名2, 变量名3; 类型标识符:如int、float、char等 变量名:程序员自行确定,符合标识符命名规则即可,约定做到见名知意 习惯用下划线和大小写间隔的方式命名标识符 user_name:Unix风格 UserName:Windows风格 变量定义是语句,分号一定不能缺少,变量定义,int a,b,c;int a; int b; int c; float m,n; char s,t;,在C语言程序中,变量必须“先定义,后使用”。 变量定义主要是指出变量的名字,确定变量的数据类型。 在同一个程序段中,变量不能被重复定义。,注意!,变量赋值,变量定义后只是按照类型分配了所需的存储空间,但是没有具体的值。 变量初始化:第一次给变量赋值的过程,这个值称为变量的初值。 先定义再赋值 int a; a=2; 定义的同时赋值 int a=2;,变量赋值,int a,b,c; a=b=c=3; 可以等价为 int a=b=c=3; 变量初始化后可以再次赋值(即修改变量的值),但是一个变量任何时刻只能有一个值。 int a=5; /变量a初始化赋值为5 a=12; /变量a的值赋值为12,即发生修改,赋值操作是从右向左进行的 变量定义的同时不能连续初始化,注意!,算术运算符,+、-、*、/、%(求余):双目运算符 %运算左右两数必须为整型数据 5%3=_,6.2%3=_ 两个整数相除,结果自动取整(向零取整) 5/3=_ 参加运算的两个数中有一个为实数,结果为double型 x为double型,y为int型,则x+y的类型的为_ 字符型数据可以和数值型数据混合运算 6+A=_,*自增、自减运算符,单目运算符,也叫做一元运算符 使变量的值在当前基础上加1/减1 i+/i-:先使用变量i的值,i值再加1/减1 +i/-i:i值先加1/减1,再使用变量i的值,int x = 3, m, n; m = x+; n = +x; 执行后m、n、x的值各是多少?,(1) +i和i+,其本质都可以使i值加1,-同理。 (2) +i和i+,求值和使用的先后顺序,-同理。,注意!,*自增、自减运算符,m = x+;,m = x;,x = x + 1;,n = +x;,x = x + 1;,n = x;,关系运算符,,=,=,=,!= 大于,大于等于,小于,小于等于,等于,不等于 关系运算符运算得到的结果为0和非0 0,表示假,即该关系不成立 非0,表示真,即该关系成立 绝大多数编译器,关系运算得到的非0结果为1,但是不要利用这个1,逻辑运算符,逻辑运算也被称为布尔(Boolean)运算 与运算& a & b,当且仅当两者都为真,则结果为真 ( a b & b c):a大于b并且b大于c 或运算| a | b,只要两者中有一个为真,结果就为真 ( a b | b c):a大于b或者b大于c 非运算! !a,如果a是0,结果非0;如果a是非0,结果是0 并不改变a的值,逻辑运算符prg2-3.c,#include void main() int a = 10, b = 20, c = 30, d; d = +a = 20 | c+; printf(“a = %d, b = %d, c = %d, d = %dn“,a,b,c,d); ,注意!,逻辑运算的短路特性,实例,判断某一年year是否是闰年的条件是满足下列两个条件之一: 能被4整除,但不能被100整除; 能被400整除; 请用C语言运算符和表达式正确描述上述闰年的条件。 (year % 4 = 0) & (year % 100 != 0) | (year % 400 = 0),赋值运算符,赋值运算符=:将一个数据赋给一个变量 赋值表达式: 可以是常量、变量或者表达式 int a,b=5,m=7,n=8; a=b; a=m+n; 优先级:赋值运算符优先级低于算术运算符、关系运算符和逻辑运算符 结合性:右结合性,复合赋值运算符,在赋值运算符“=”之前加上其他运算符,构成复合赋值运算符。 复合赋值表达式 ,x += 5; x *= y+8; x %= 3; x -= y;,x = x + 5; x = x * (y+8); x = x % 3; x = x - y;,逗号运算符,一般形式:表达式1, 表达式2 求解过程 先求解表达式1的值,再求解表达式2的值。 整个逗号表达式的值是表达式2的值。 扩展形式:表达式1, 表达式2, , 表达式n,int x,y=5; x=(y=y+6,y=y/3); 则x的值为_,(1) 先计算y=y+6的值,y=5+6,y值为11。 (2) 再计算y=y/3的值,y=11/3,y值为3。 所以变量x的值为3。,条件运算符,一般形式: ? : 运算顺序 先求解表达式1的值。 如果表达式1的值为真,则求解表达式2的值并把它作为整个表达式的值。 如果表达式1的值为假,则求解表达式3的值并把它作为整个表达式的值。,实例1,今天我要出门办事,因为需要外出一整天而这段时间又是多雨的季节,所以我要考虑是否需要携带雨伞。我的判断依据是出门时天阴带伞,反之不带伞。请用条件表达式描述上述判断原则。 分析:外出时有两种选择带伞或不带伞,其判别依据为是否天阴。 条件表达式描述如下: 天阴 ? 带伞 : 不带伞,实例2,已知符号函数映射关系如下: 请用条件表达式给变量y赋值。 y = (x = 0) ? (x 0) ? 1 : 0) : -1,实例2,y = (x = 0) ? (x 0) ? 1 : 0) : -1 表达式2:(x 0) ? 1 : 0,表达式1,表达式2,表达式3,表达式1,表达式2,表达式3,求字节运算符,一般形式 sizeof(变量名):返回变量的字节长度 sizeof(类型名):返回类型的字节长度 求出的结果为变量或者类型占用的字节数。 为什么要用sizeof获得类型或变量的字长?,求字节运算符prg2-4.c,#include void main() printf(“Data type Number of bytesn“); printf(“- -n“); printf(“char %dn“, sizeof(char); printf(“int %dn“, sizeof(int); printf(“short int %dn“, sizeof(short); printf(“long int %dn“, sizeof(long); printf(“float %dn“, sizeof(float); printf(“double %dn“, sizeof(double); ,VC编译器,TC编译器,运算符的优先级,( ) - . ! + - + - * & (类型) sizeof * / % + - = = != & | & | ? : = += -= *= /= %= &= = |= = ,自动类型转换,同种数据类型

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论