当前课程知识点:C语言程序设计 >  第3章 基本数据类型、运算符与表达式 >  3.5 赋值运算符和逗号运算符 >  赋值运算符和逗号运算符

返回《C语言程序设计》慕课在线视频课程列表

赋值运算符和逗号运算符在线视频

下一节:数据类型转换

返回《C语言程序设计》慕课在线视频列表

赋值运算符和逗号运算符课程教案、知识点、字幕

同学们 大家好

这节课我们来学习

C程序中的赋值运算符和逗号运算符

在C程序中大部分的计算功能都是

由赋值语句实现的

赋值运算符和赋值表达式是

组成赋值语句的基本元素

首先来看基本运算符

同学们可以看到赋值运算符

在形式上与数学上的等号写法相同

但含义不同

赋值运算符是将赋值号右边的常量

变量或表达式的值赋给左边以变量名

所代表的地址空间

属于双目运算符

赋值运算符优先级只高于逗号运算符

它的结合方向为自右至左

赋值表达式由赋值运算符或复合赋值运算符

和相应的操作数组成的表达式

赋值表达式的作用是

将一个表达式的值赋给一个变量

看下面的程序段 定义三个整型变量x

y

z

将数值20赋值给变量x

再将x的值赋值给变量y

最后将变量x的值和y的值相加赋值给变量z

等号左侧是合法变量名

右侧是常量

变量或表达式

在C语言中允许对多个变量连续赋值

例如

按照赋值运算符

从右向左的结合顺序

依次对变量c

b

a赋值为10

在C语言中允许赋值表达式的嵌套

例如

按照赋值运算符

从右向左的结合顺序

先对y和z赋值

再执行加法运算

最终x的值为5

因此赋值表达式具有计算和赋值的双重功能

C语言规定

任何表达式在其末尾加上分号就构成了语句

有如下赋值语句

赋值表达式除了可以出现在赋值语句中

而且可以出现在其他语句中

如下程序段

在一个语句中完成了赋值和输出双重功能

C语言除了提供赋值运算符以外

还提供了各种复合赋值运算符

在赋值运算符

之前加上加

除等运算符

可以构成复合赋值运算符

复合赋值运算符结合方向

自右向左性

与赋值运算符是同一个优先级

对表达式a += b可以这样理解

将a+移到赋值运算符右侧

在赋值运算符左侧写上变量a

等价于表达式a = a + b

如果b是包含若干项的表达式

则对b表达式添加括号

如下列两个表达式是等价的

不要将表达式错写成此式

分析下面的程序段∶

此时赋值表达式的求解步骤如下∶

第一步先执行

a-=a*a的运算

此时 a的值为-132

第二步再进行

a+=-132的运算

a的值为-264

在C语言中还提供了一种特殊的运算符

逗号运算符

用逗号运算符将多个表达式接起来

构成逗号表达式

首先逗号运算符的优先级是最低的

其次逗号运算符是左结合

即逗号表达式的求值顺序是

从左向右依此计算用逗号分隔的各表达式的值

最后一个表达式的值就是整个逗号表达式的值

逗号表达式的值为

第三个表达式b++的值3

特别强调的是并不是任何地方出现的逗号

都是作为逗号运算符

例如函数参数也是用逗号来间隔的

这里的i、j、k

只是printf函数的3个参数

另外逗号表达式在C语言程序中用途较少

通常常用在for循环语句中

具体的含义我们在后面的课程中进行讲解

同学们今天的内容就讲到这

我们下次课再见

C语言程序设计课程列表:

第1章 C语言程序设计预备知识

-计算思维与计算机

--计算思维与计算机

--计算思维与计算机

--计算思维和计算机

第2章 C语言程序设计基础

-2.1 程序设计语言的发展及其特点和应用

--程序设计语言的发展及其特点和应用

--程序设计语言的特点及发展

- 2.2 C语言程序的基本结构及编制C语言程序的基本步骤

-- C语言程序的基本结构及编制C语言程序的基本步骤

--C语言程序的结构和编制步骤

第3章 基本数据类型、运算符与表达式

-3.1 C语言的数据类型

--C语言的数据类型

--C语言的数据类型

-3.2 常量

--常量

--常量

-3.3 什么是变量

--什么是变量

--什么是变量

-3.4 如何进行算术运算

--如何进行算术运算

--如何进行算术运算

-3.5 赋值运算符和逗号运算符

--赋值运算符和逗号运算符

--赋值运算符和逗号运算符

-3.6 数据类型转换

--数据类型转换

--数据类型转换

第4章 基本输入输出和顺序程序设计

-4.1 格式化输出printf

--格式化输出printf

--格式化输出

-4.2 格式化输入scanf及字符数据的非格式化输入输出

--格式化输入scanf及字符数据的非格式化输入输出

--格式化输入

第5章 选择结构程序设计

-5.1 关系运算符和关系表达式

--关系运算符和关系表达式

--关系运算符和关系表达式

-5.2 逻辑运算符和逻辑表达式

--逻辑运算符和逻辑表达式

--逻辑运算符和逻辑表达式

-5.3 条件运算符和条件表达式

--条件运算符和条件表达式

--条件运算符和条件表达式

-5.4 if语句

--if语句

--if语句

-5.5 switch语句

--switch语句

--switch语句

第6章 循环结构程序设计

-6.1 while语句

--while语句

--while语句

--do-while语句

-6.2 for语句

--for语句

--for语句

-6.3 循环的嵌套

--循环的嵌套

--循环的嵌套

-6.4 break语句和continue语句

--break语句和continue语句

--break和continue语句

第7章 数组

-7.1 一维数组的定义和引用

--一维数组的定义和引用

--一维数组的定义和引用

-7.2 一维数组的赋值

--一维数组的赋值

--一维数组的赋值

-7.3 二维数组的定义和引用

--二维数组的定义和引用

--二维数组的定义和引用

-7.4 二维数组的赋值

--二维数组的赋值

--二维数组的赋值

-7.5 字符串的本质

--字符串的本质

--字符串的本质

-7.6 字符串操作的常用函数

--字符串操作的常用函数

--字符串常用函数

-7.7 字符串数组

--字符串数组

--字符串数组

第8章 函数

-8.1 函数概述

--函数概述

--函数概述

-8.2 有参函数

--有参函数

--有参函数

-8.3 函数参数的传递方式

--函数参数的传递形式

--函数参数的传递方式

-8.4 变量的作用域和生存期

--变量的作用域和生存期

--变量的作用域和生存期

-8.5 变量的存储类型

--变量的存储类型

--变量的存储类型

-8.6 函数的嵌套和递归调用

--函数的嵌套和递归调用

--函数的嵌套和递归调用

-8.7 函数的作用域与封装

--函数的作用域与封装

--函数的作用域与封装

第9章 指针

-9.1 指针变量的概念(上)

--指针变量的概念(上)

--指针变量的概念(上)

-9.2 指针变量的概念(下)

--指针变量的概念(下)

--指针变量的概念(下)

-9.3 指向一维数组的指针变量

--指向一维数组的指针变量

--指向一维数组的指针变量

-9.4 指向二维数组的指针变量(上)

--指向二维数组的指针变量

--指向二维数组的指针变量(上)

-9.5 指向二维数组的指针变量(下)

--指向二维数组的指针变量(下)

--指向二维数组的指针变量(下)

-9.6 动态内存分配

--动态内存分配

--动态内存分配

第10章 预处理命令

-10.1 编译预处理

--编译预处理

第11章 复杂数据类型

-11.1 用户自己建立数据类型

--用户自己建立数据类型

--用户自己建立数据类型

-11.2 定义结构体类型变量

--定义结构体类型变量

--定义结构体类型变量

-11.3 结构体变量的引用与初始化

--结构体变量的引用与初始化

-11.4 结构体数组

--结构体数组

--结构体数组

-11.5 指向结构体类型数据的指针

--指向结构体类型数据的指针

--指向结构体类型数据的指针

第12章 文件

-12.1 文件的基本概念和文件指针

--文件的基本概念和文件指针

--文件的基本概念和文件指针

-12,2 文件的打开和关闭

--文件的打开和关闭

--文件的打开和关闭

-12.3 文本文件读写

--文本文件读写

--文本文件读写

-12.4 二进制文件读写

--二进制文件读写

--二进制文件读写

赋值运算符和逗号运算符笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。