c语言数据类型与表达式,C语言的基本数据类型与表达式.ppt

《C语言的基本数据类型与表达式.ppt》由会员分享,可在线阅读,更多相关《C语言的基本数据类型与表达式.ppt(38页珍藏版)》请在装配图网上搜索。

1、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。

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的范围是-327683276。

3、7 如果超出取值范围,给它一个小于-32768或者大于32767的数会如何呢?现场编程测验,小蛇能吞下大象吗?,typeoverflow.c,常量,是指在程序运行中,其数值不能被改变的量,整型常数,int型常量:18、-31(十进制) long int型常量: 123456L、 123456l、123L、123l unsigned int型常量:123u、123U 八进制常量:以数字0开头的整数 例如:012=1*81+2*80=10(十进制) 十六进制形式:以0 x开头的整数 例如:0 x12=1*161+2*160=18(十进制),实型常数,十进制小数形式:123.45、456.78 指数。

4、形式: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个字符,其含义是换行,转义字符,一些。

5、特殊字符(无法从键盘输入或者另有它用)用转义字符表示。,字符串String常数,用双引号括住的由零个或多个字符组成的字符序列 I am a string 表示空字符串 转义字符也可以在字符串中使用 引号只作为字符串开始和结束的标志 C语言内部用0表示字符串的结束 除注释外,是唯一可以出现中文的地方 x和x是不同的 里定义了一系列专门的字符串处理函数,符号常量,含义:用标识符定义一个常量,也叫做宏常量,通常用大写字母表示。 一旦某个标识符被定义成为一个常量后,以后在程序处理时,该标识符都代表对应的常量值。 定义格式:#define 标识符 常量数据 #define MAX 1000 #defin。

6、e 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); ,变量,是指以标识符为名字,其值可以。

7、改变的量 定义形式:类型标识符 变量名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语言程序中,变量必须“先定义,后使用”。 变量定义主要是指出变量的名字,确定变量的数据类型。 在同一个程序段中,变量不能被重复定义。,注意!,变量赋值,变。

8、量定义后只是按照类型分配了所需的存储空间,但是没有具体的值。 变量初始化:第一次给变量赋值的过程,这个值称为变量的初值。 先定义再赋值 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。

9、=_____,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,-同理。

10、。 (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)运算 与运算 d = +a = 20 | c+; printf(a = %d, b = %d, c = %d, d = %dn,。

11、a,b,c,d); ,注意!,逻辑运算的短路特性,实例,判断某一年year是否是闰年的条件是满足下列两个条件之一: 能被4整除,但不能被100整除; 能被400整除; 请用C语言运算符和表达式正确描述上述闰年的条件。 (year % 4 = 0) 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。

12、 - 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的值并把它作为整个表达式的值。

13、。,实例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,求。

14、字节运算符,一般形式 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编译器,运算符的优先级,( ) - . ! + - + - * float z; z = x / y; printf(z = %fn,z); ,z = (float) (x) / y; z = x / (float) (y); z = (float) (x/y。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值