第2章数据类型和表达式(3)
第2章 C#数据类型和表达式
2.2 常量与变量
2. 实型常量
实数又称为浮点数,一般有两种书写形式: 实数又称为浮点数,一般有两种书写形式: ① 一般形式 就是平时写实数的形式。 就是平时写实数的形式。 ② 指数形式 在C#中,指数形式表示为: C#中 指数形式表示为: <整数部分>E<指数部分> 整数部分>E<指数部分 指数部分>
2.2 常量与变量
2.2.2 变量的声明
在程序执行过程中其值可以改变的量叫变量。 在程序执行过程中其值可以改变的量叫变量。 1.变量的定义 <数据类型><变量名>; 数据类型><变量名 变量名>; 或 <数据类型><变量名1>,<变量名2>,…,<变量n>; 数据类型><变量名 , 变量名2>,…, 变量n>; 变量名1> 例如: 例如: int a,x,y; //定义了3个整型变量a,x,y //定义了 个整型变量a,x,y 定义了3 char b; //定义了1个字符型变量b //定义了 个字符型变量b 定义了1 float c,d; //定义了2个实型(单精度)变量c,d //定义了 个实型(单精度)变量c,d 定义了2 double u,v; //定义了2个实型(双精度)变量u,v //定义了 个实型(双精度)变量u,v 定义了2
2.2 常量与变量
2. 变量的初始化
int a=2; //定义a为整型变量,初值为2 //定义 为整型变量,初值为2 定义a char b= ‘A’; //定义b为字符型变量,初值为‘A’ //定义 为字符型变量,初值为‘ 定义b double x=2.1234; //定义x为实型变量,初值为2.1234 //定义 为实型变量,初值为2.1234 定义x 也可对被定义的变量的部分变量进行初始化。 也可对被定义的变量的部分变量进行初始化。如 int u,v=100,w; //定义u,v,w为整型变量,v的初值为100 //定义 定义u,v,w为整型变量 为整型变量, 的初值为100
第2章_数据类型、运算符和表达式《C语言程序设计(第三版)》-电子教案
2.2 标识符、常量与变量
符号常量
【例2-1】输入圆的半径,计算周长和面积。 #define PI 3.14159 void main() { float r,c,s; scanf("%f",&r); c=2*PI*r; s=PI*r*r; printf("r=%f,c=%f,s=%f\n",r,c,s); }
以下是合法的整型常量:
2.2 标识符、常量与变量
实型常量
实型常量只能用十进制形式表示 表示形式:
小数形式。由数字序列和小数点组成,如 3.1415926、-0.15、.15、2.等都是合法的实型 常量。 指数形式。由十进制数加上阶码标志“e”或 “E”及阶码组成,如3.14e-4或3.14E-4表示 3.14×10-4。
2.2 标识符、常量与变量
2.2.3 变量
在程序运行过程中,其存储的值可以被改变的量称 为变量 变量必须通过标识符进行说明,称为变量名。 变量名和内存单元地址存在映射关系,程序可以通 过变量名寻址,从而访问其存储的数据。
2.2 标识符、常量与变量
变量的定义和说明
数据类型 变量名1[,变量名2,…,变量名n];
long型转换成float型时由原来可达10位整数变成只有7位有效数字精度丢失但由于数的范围扩大了数据类型从较低级提升到较高级随着竞争日益激烈酒店嘴中的肥肉被大肆抢夺各大酒店在这场竞争中几乎溃不成军
21世纪高等学校精品规划教材
第2章 数据类型、运算符 和表达式
掌握C语言的基本数据类型 掌握标识符、关键字、常量和变量的使用 掌握运算符、表达式以及数据类型之间的转换 等 掌握简单数据的输入输出
第2章 数据类型运算符和表达式
(1.5)字符型类型
字符常量
C的字符常量是用单引号(即撇号)括起来的一个字 符。
如: ‘a’,‘x’,‘d’,‘?’,‘$’等都是字符常量。 注意,‘a’和‘A’是不同的字符常量。
特殊字符常量
以反斜杠字符“\”开头的字符序列:
字符形式 \n \t \b \r \f \\ \’ \”
\ddd \xhh
浮点型数据在内存中的存放形式
在常用的微机系统中,一个实型数据在内存中 占4个字节(32位)。与整型数据的方式不同,实 型数据是按照指数形式存储的。系统把一个实 型数据分成小数部分和指数部分,分别存放。 指数部分采用规范化的指数形式。
浮点型数据在内存中的存放形式
在4个字节(32位)中,究竟用多少位来表示小数 部分,多少位来表示指数部分,标准C并无具 体规定,由各C编译系统自定。 不少c编译系统以24位表示小数部分(包括符号), 以8位表示指数部分(包括指数的符号)。
3)在一个整型常量后面加一个字母l或者L,则认为是 long int型。 例如:用预处理指令#define 声明一个常数,用以表明1 年中有多少秒(忽略闰年问题)
#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL
(1.4)浮点型数据
浮点型常量表示方法
浮点数即平时所说的实数,有两种表示方法:
1)十进制表示:由数字和小数点组成。
如:0.123
12345 0.0
2)指数形式: 如:123e3或者123E3都代表123×103
注意字母e(或E)之前必须有数字,且e后面的指数必须为 整数,如e3、2.1e3.5、.e3、 e等都不是合法的指数形式。
规范化的指数形式:在字母e(或E)之前的小数部分中, 小数点左边应有一位(且只能有一位)非零的数字。 如:1.23456e2
第二章数据类型与表达式
返回本讲目录
2)浮点型常量 浮点型常量也称为实数或者浮点数。在C++中,实数
只采用十进制。它有两种形式:十进制小数形式和 指数形式。
(1)十进制小数形式。由数字0~9和小数点(注意: 必须有小数点)组成,小数点前后如果有单独的0 可以省略。如:123.45、-256.7、0.0、.25、12.都 是合法的小数。
变量定义的一般格式为:
数据类型 变量名1,变量名2,…,变量名n;
在定义一个变量的同时,也可以用赋值运 算符给它赋以初值,称为变量初始化。
变量初始化的格式如下:
数据类型 变量名1=初值1 , 变量名2=初值2 , … , 变量名n=初值n;
“=”在C++中不是数学中的“等于号”, 而是赋值号,它表示把“=”右边的数据存 放在左边的变量表示的存储单元中。
本章学习内容
掌握各种基本数据类型的关键字、数据长度 和表示范围;
掌握各种类型的数值表示; 弄清变量以及变量赋值的实质、标识符的构
成规则; 弄清常量与变量之间的区别; 掌握常用的运算符的含义、优先级和使用方
法; 掌握隐式和显式类型转换的概念和使用方式。
本章目录
第二讲 C++的数据类型、常量与变量 第三讲 运算符与表达式 本章小结
(3)十六进制整数。十六进制整常数的前缀为0X或0x,其数字 取值范围为0~9、A~F或a~f。例如:0X1C、0XFFFF等。
(4)整型常数的后缀。如果使用的数值超过了基本整型数据的 取值范围,就必须用长整型数来表示。长整型数是用后缀 “L”或“l”来表示的。例如:158L、077L和0XA5L等。
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语言 第二章数据类型、表达式
说明
在整型常量尾部加上字母1或 时 在整型常量尾部加上字母 或L时,则 表示长整型常量.比如: 表示长整型常量.比如:18L或18l 或 整型(int)常量的值在 32768~32767之间 常量的值在 整型 之间 长整型(long int)常量的值在 长整型 常量的值在 2147483648 ~ 2147483647之间 之间
三位八进制 001 000 001 二进制 ( (用十进制表示为65) 65)
A' 如 \ 101 –– 表示字符'A' 又: \ x hh
用1到2位16进制数表示的 到 位 进制数表示的 进制数表示的ASCII码对应的字符 码对应的字符
如 \ x 41–– 表示字符'A'
0100 0001 二进制 (用十进制表示为65)
注意: 注意: 实型变量的有效数字的长度视机器而定 例如: 例如: pc机, 单精度一般为7位, 双精度15位 于是: float a; a=123456.789 则实际赋值a←123456.7 单精度表数范围: 单精度表数范围 10–38~1038 双精度表数范围: 双精度表数范围 10–308~10308 实数可以赋给float或double型变量.
对于较大或较小的数,可用指数形式 0.0000126 1260000 1.26E –5 1.26E+6 或1.26E6
' E ', 'e ' 均可, 表示以10为基数.E或e之前必须要 有数字,称为尾数部分或数码部分.规范化的尾数是将 小数点固定在第一位有效数字之后.ddd称为指数,指数 最多可达3位整数.
2.4.2 实型变量
分为单精度型 双精度型 单精度型与双精度型 单精度型 双精度型. 例如: 例如: float x, y, z ; 定义x, y, z为单精度变量. double a, b, c ; 定义a, b, c为双精度变量. 一般地: 单精度占4字节内存单元 字节内存单元; 一般地 单精度占 字节内存单元 双精度占8字节内存单元 双精度占 字节内存单元. 字节内存单元
C语言第2章 数据类型及运算符
C/C++程序设计第2 章数据类型及表达式计算机学院C/C++程序设计课程组C/C++程序设计第2章主要内容本章主要介绍:基本数据类型和存储类型的说明方法,以及基本运算符的运算规则和表达式的构成方法,为后续章节的学习奠定一个基础。
C/C++程序设计2.1 C 语言的数据类型使用高级语言编写程序,主要工作有两项:一是描述数据,二是描述数据加工的方法。
数据类型图 2.1C 语言的数据类型基本类型整型实型字符型带符号长整型(简称长整型)带符号整型无符号整型无符号整型无符号短整型无符号长整型单精度型双精度型空类型构造类型指针类型枚举类型数组类型结构体类型共用体类型C/C++程序设计2.2 常量常量是程序运行过程中其值不发生变化的数据。
2.2.1 整型常量表2.1 整型数据的表示方式2.2.2 实型常量3.14、.9999、-3.14159、834.、–0.666 、6.89E-52.2.3 字符常量’x’,’a’,’A’,’b’,’$’,’#’ ,printf("\tab\rcd\n\’ef\\g");2.2.4 符号常量#define 符号常量字符串#define PI 3.14159C/C++程序设计【例2.1】求一个圆柱体体积,用符号常量代替π。
#include <stdio.h>#define PI 3.14159 /*定义PI为符号常量*/void main(){float r,h,v;scanf("%f,%f",&r,&h);v=PI*r*r*h; /* PI相当于3.14159,参与运算*/printf("Volume=%f",v);}运行时输入:3,2↙运行结果为: Volume=56.548618C/C++程序设计2.2.5 字符串常量"\tab\rcd\n\’ef\\g“"I am a student" 、"x"、""注意:’\0’和’0’不同,’\0’是编码为0的字符,而’0’则是数字0,其编码为48。
C++程序设计第2章数据类型、运算符和表达式
11
2.2 C++的基本数据类型
不同计算机系统可能存在数据类型的长度不一样可用sizeof(数据类 型)测试某数据类型的字节长度。 cout<<“size of int is”<<sizeof(int)<<endl; 在16位计算机结果:
在32位计算机上输出:
size of int is 2
size of int is 4
3
2.1 保留字和标识符
2.1.1 保留字 C++中保留字(Reserved word)也称为关键字 (Keyword),它们是预先定义好的字符集合,对C++ 编译程序有着特殊的含义。表2-1给出了C++和Visual C++兼容的保留字。 保留字是语言系统的保留成分,编程者不能使用它们作为 自己的变量名或函数名等。
7
2.2 C++的基本数据类型
基本类型 整型 字符型 浮点型 布尔型 枚举类型 数组类型 结构体类型 共用体类型 类类型
数据类型
构造类型
指针类型 引用类型 空类型(void) 图2-1 C++的数据类型
8
2.2 C++的基本数据类型
C++语言的基本数据类型有如下四种: 整型,说明符为int; 字符型,说明符为char; 浮点型(实型),分为float(单精度浮点型),double(双精度 浮点型); 布尔型,说明符为bool。它的值是true和false。 教材中表2-2列出了Visual C++6.0中基本数据类型的情况。 注意:不同数据类型其值域不同,应住这些值域,在程序设计中, 要估计变量的值不应超过这些值域,否则将产生数值溢出现象,产 生编译器无法检测的错误。
易语言编程系统全书(第二章)
第二章数据类型、运算符与表达式各种数据存在磁盘或内存中都有其不同点存放格式,因此就存在不同的数据类型。
了解各种数据类型的特性,对编程开发来说是十分重要的。
程序中经常会进行一些运算。
易语言中运算都要使用运算符进行识别处理,并通过运算表达式来完成运算操作。
程序中对各种数据之间的关系的描述也要通过运算符。
本章将对数据烈性运算符和表达式这些程序中基本的内容进行介绍。
2.1易语言的数据类型2.2.1了解基本数据类型易语言中基本数据类型有6中,包括数值型、逻辑型、日期时间型、文本型、字节集型、子程序指针型。
数值型有包括了字节型、短整数型、整数型、长整数型、小数型、双精度小数型。
这些类型代表的数值范围,及机内表示的长度,可以查看“数据类型的长度与溢出”小节中的“表2-1数据类型的长度和占用字节”。
字节型:可容纳0到255之间的数值。
数值型中整数型数据,如13556。
逻辑型数据,职能有2种,即“真”或“假”。
日期时间型数据,用来记录日期及时间,如:[2002-2-2]。
文本型数据,可用来记录一段文本,如“中文编程易语言”。
在程序中表示一段文本数据,都要用双引号将文本引起来。
字节集型数据,用作记录一段字节型数据,表示为{2,3,4,5}。
图片或mp3格式的文件是典型的字节机型数据,在程序中,存在此类数据的变量一定要定义为字节集型。
子程序指针型数据,是一个子程序在内存中的地址。
2.2.2 给变量和返回值定义数据类型1.给变量定义数据类型给变量定义数据类型,只需要在新建的变量类型上按下空格键,就会弹出数据类型下拉列表,在列表中选择欲定义的数据类型即可(如图2-1所示),也可用拼音或英文在其上直接输入,例如:整数型即输入zsx或用英文输入int。
2. 给子程序返回值定义数据类型和给变量定义数据相同,只需要在子程序的返回值类型上用定义变量的方法定义即可。
给子程序定义了返回值类型,就表示该子程序具有了返回值,所以在子程序中编写代码时要记得给子程序返回一个值。
第2章C语言的基本数据类型与表达式
2.5 + 97(int)
思考 int a=1,b=2; 表达式a/b+3的结果是多少?
99.5 + 5 104.5(double)
int a=10000,b=30000; 表达式a+b的结果是多少? 如何修改?
3、自增与自减运算符 (++ 、--) ++i,--i:使用之前使i的值增1(或减1); i++,i--:使用之后使i的值增1(或减1);
int a,b,c; a=b=c=3; √
例2-1: main( ) { int x,y,z,w; /*定义x,y,z,w为整型变量*/
unsigned int k; /*定义k为无符号整型变量*/ x=10;y=-20;k=30; z=x+k;w=y+k; printf(“x+k=%d,y+k=%d\n”,z,w); } 程序运行结果为:
例如:int a,b,c ; float x,y;
自己设定,满足 标识符的规定。
;不可省
char c1,c2; 或 int c1,c2;
定义变量就是在内存中划出一块相应类型的存储空间存放该变量的值。
2、变量初始化 在定义变量的同时给变量一个初始值。
int a=5, b=3; √
注意
int a=b=c=3;
还使用英文字母a~ f (或A~ F)表示10~15。 如:0x1e √
2、整型变量的分类:
根据数据所占的存储长度的不同分为:int、short、long;
同样存储长度的数据又分unsigned、signed;
故可组合出六种类型。
思考:int a=20000,b=20000,c;
C++第2章 数据类型与表达式
signed long int
unsigned long int float double long double
singned long
unsigned long —— —— ——
有符号长整型(同long int)
无符号长整型 浮点型 双精度型 长双精度型
4
4 4 8 10
-2,147,483,648~2,147,483,647
128u // unsigned 1024UL // unsigned long
1L
// long
8Lu
// unsigned long
14
2.2.1 整型字面值常量
2.前缀类型标识
在C++中整型有三种表示形式:10进制、8进制和16进制,以非 0开头的数是10进制,以0开头表示8进制,以0x或0X开头表示 16进制,例如:
H e A \0 AΒιβλιοθήκη llo \0
图2-2 字符串与字符的存储方式
23
2.2.6 枚举
C++程序设计 第2章 数据类型、运算符和表达式
第2章 数据类型、运算符和表达式
2.1 2.2 2.3 2.4 2.5 2.6 2.7 基本数据类型 常量 变量 基本运算符 类型转换 表达式和语句 本章小结
2
2.1 基本数据类型
为什么要区分数据类型?
C++通过数据类型,告诉计算机数据是如何定义的。
10
2.1.5 C++的数据类型
C++数据类型如图2-1所示。
基本数据类型 整数类型(int) 单精度型(float) 浮点类型 双精度型(double) 字符类型(char) 布尔类型(bool) 空值类型(void) 枚举类型 数组类型 C++数据类型 构造数据类型 结构与联合类型 指针类型 引用类型
C语言程序设计实训教程第2章 数据类型、常量、变量、运算符与表达式
22
23
【例 2.8】 两个 char型数相加,结果为 char 型。( )[判断题,重庆市 2005年第 1次等级考 试] 答案:错 分析:结果是 int型。char型数据在运算前,先 无条件转换成 int型,再参与运算。
24
4)强制类型转换 【例 2.9】 若有 int k =5;float x=1.2;则表达 式( int)( x+ k)的值是( )。[单选题,重庆 市 2001年第 1次等级考试] A.5 B.6.2 C.7 D.6 答案:D
8
返回给定类型或表达式(运算结果)的字节数 (以 unsigned int的形式)。 强制转换运算符 把表达式的结果转变为所需的 类型。 (类型)表达式 运算过程中类型的转换 如图 2.1所示,横向表示无条件的转换,比如 在计算前,char型要先转换成 int再参与计算。 竖向表示操作符两边的操作数属于不同类型时, 精度低的向精度高的方向转换,然后再参与运算, 运算结果为转换后的类型。
9
赋值时类型转换 在赋值时,赋值号右边表达式 的值的类型自动转换为其左边变量的类型。 位运算符 位运算的操作数为整型或字符型。位 运算就是把整数的内部二进制形式按位进行运算。
图 2.1 C 语言类型转换示意图
10
①按位取反∽ 运算规则:
11
②位与(&) 运算规则:
12
③位或( |) 运算规则:
6ห้องสมุดไป่ตู้
运算符 分算术运算符、赋值运算符、关系运算 符、逻辑运算符、逗号运算符、自增和自减运算符、 条件运算符、位运算符等。 表达式 由运算符连接运算对象构成的式子。可 根据运算符的不同分类为算术表达式、赋值表达式、 关系表达式、逻辑表达式、逗号表达式、条件表达 式等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三讲
青岛工学院
一、问题的引入
1. 计算机程序的最主要用途就是对数据进行 处理,处理主要借助于各种运算符。
2. 运算符与运算对象进行合理组合后便构成 表达式。
2
二、本讲主要内容
运算符与表达式
算术运算符 关系运算符 逻辑运算符 赋值运算符 条件运算符 逗号运算符 位运算符
练习
1、已有定义:char
c=„ ';int a=1,b;(此处c的 初值为空格字符),执行b=!c&&a;后b的值为 ______。 2、执行以下程序段后,w的值为______,x的值 为______。 int w='A',x=10,y=15; x=((x&&y)||(w=‟B‟));
四、赋值运算符
注意:
要注意区分C语言中的关系运算符与数学 符号的区别。 1.C语言中比较是否相等用“==”运算符,‚=”是 赋值运算符。 2.关系表达式运算顺序:自左向右,运算结果 为0或1。
例2-8,下列程序段的输出结果。
#include <stdio.h> int main() { int x=7; if(3<=x<=5) printf("Yes"); else printf("No"); return 0; } 输出结果: Yes
输出结果: ++i=1 i=1
练习
【练习2-8】int
i=3; printf(“%d”,i--); 输出结果
为____。 A.2 B. 3 2ab 【练习2-9】以下不能正确表达 的C语言表达 cd 式的是 A. 2*a*b/c/d B.a*b/c/d*2 C. a/c/d*b*2 D.2*a*b/c*d
变量=表达式
规定赋值运算符 = 的左边必须是一个变量。 作用是把表达式的值ቤተ መጻሕፍቲ ባይዱ给变量。
错误 w=x+y=z; 1. 赋值运算符优先级低于算术运算符、关系运 算符、逻辑运算符。判断下面w,x,y的值。 a=0;b=1;w=a+b;x=a>b;y=a+++--b; 2. 赋值运算符运算符顺序为自右向左。 a=b=c>5可理解为a=(b=(c>5))
关系运算符 逻辑运算符 条件表达式 赋值运算符
< <=
==
>
!=
>=
从左向右(左结合)
&& ||
?:
从右向左(右结合) 从左向右(左结合)
低
= += -= *= /= %=
,
逗号运算符
二、关系运算符
1、关系运算符
比较两个操作数,比较的结果:真(1) 假(0) x < y x <= y x == y x > y x >= y x != y 优先级:由高到低 算术运算符 < <= > >= == != 赋值运算符 左结合
非0 非0
注意:
exp1 && exp2
exp1 || exp2
先算 exp1 ,若其值为假,则不需要计算 exp2的值 先算 exp1 ,若其值为真,则不需要计算 exp2的值
int a=5,b=6,c=7,d=8;
int m=2,n=2;
结果: m=0,n=2
(m=a>b)&&(n=c<d) ;
三、逻辑运算符
逻辑运算符:&&
|| ! 逻辑运算结果:1(真) 0(假) 逻辑运算对象:关系表达式或逻辑量 x >= 3 && x <= 5 !x
判断逻辑量的真假:
非0的数被看做真
数值0被看做假
例如:x=-1,则!x的值为0
逻辑运算的规则-真值表
x y 假 假 0 0 假 真 0 假 非0 真 非 真 0 真0 x&&y x||y 0 0 0 1 0 1 1 1 !x 1 1 0 0
w=1,x=0,y=0
3、复合赋值运算符
赋值运算符
简单赋值运算符
复合赋值运算符
=
复合算术赋值运算符 += -= *= /= %= 赋值表达式 变量 赋值运算符 表达式 x += exp 等价于 x = x + exp x *= y – 3 等价于 x = x * (y-3)
练习2-11
例2-7
#include <stdio.h> int main() { int i=3; printf("%d,%d,%f\n",i/2,1/i,1.0/i); return 0; }
输出结果
1,0,0.333333
自增运算符++和自减运算符-1. 自增、自减运算符只能用于变量。 2. 自增运算符既可做前缀运算符(++i),又可做后缀 运算符(i++)。 3. 自增运算符可以改变操作数的值,使操作数的值 增1 。 4.自增运算符构成的表达式的值: ++i表达式的求法:i的值自增1,然后取i的值作为 表达式的值。 i++表达式的求法:取i的值作为表达式的值,然后i 的值自增1。 5. 自减运算符的用法与自增运算符类似,自增改为 自减即可。
1、若变量均已正确定义并赋值,以下合法的C
语言赋值语句是______。 A、x=y= =5; B、x=n%2.5; C、x+n=i; D、x=5=4+1; 2、设变量a和b已正确定义并赋初值。请写出 与a-=a+b等价的赋值表达式______。
算术运算符的优先级和结合性 单目 + - ++ -双目 * 双目 + / % 低 高
见表2-5 从右向左 从左向右 从左向右
-5 + 3%2 = (-5) + (3%2) = -4 3 * 5 % 3 = (3*5) % 3 = 0 -i++ -(i++)
表2-5 部分运算符的优先级和结合性
运算符种类 逻辑运算符 算数运算符 运算符 ! ++ -- + - *(单目) * / %(双目) + - (双目) 结合方向 从右向左(右结合) 优先级 高
强制类型转换
3
一、算术运算符
* 单目 +(正) -(负) ++(自增)--(自减) * 双目 +(加) -(减) *(乘) /(除) % (模) 注意:
/ 整数除整数,得整数 1/4 = 0,10/3 = 3 % 模(求余):针对整型数据 5%6 =5,9%4 =1,100%4 =0 a*b不可以省略为ab
自增运算符++和自减运算符-6.分析程序代码时要区分的最重要的一点是:需要 的是变量的值,还是自增表达式的值。
i=0; printf(“i++=%d”,i++) printf(“i=%d”,i)
i=0; printf(“++i=%d”,++i) printf(“i=%d”,i)
输出结果: i++=0 i=1