C语言运算符与表达式
2021-06-09 06:05
标签:赋值 数值 有关 再计算 计算 执行 赋值运算符 lang 大于等于 算术运算符用于执行程序中的数学运算,C 语言中常用的算术运算符有以下 5 种: 加或正值 减或负值 * 乘 / 除 % 取余 加法或者正值运算符“+”。作为加法运算符时是双目运算符,也就是需要有 2 个操作数参与运算,例如:a+b、1+3 等。如果作为正值运算符时是单目运算符,例如:+3、+1 等。参与加法运算的操作数可以是字面量、也可以是变量: 减法或者负值运算符“-”。 乘法运算符“*”。 除法运算符“/”。 【注意】两个整数相除结果为整数,两个浮点数相除结果为浮点数,如果两个操作数中有一个是浮点数,相除结果为浮点数,示例代码如下: 不仅仅是除法,几乎所有运算都是:整数和整数运算结果是整数;整数和小数运算结果是小数;小数和小数的运算结果是小数。 求余运算符“%”,属于双目运算符,要求参与运算的两个操作数都必须是整数,求余运算的结果是两个数相除的余数,示例代码如下: 将算术运算符、小括号、操作数连接起来、符合 C 语言规则的式子被称为算术表达式,参与运算的操作数可以是字面量、变量、函数等。例如:a+1、a-b、1*10、20/2、30%4…..等等。 在数学中,算术运算有一套完整的运算规则。在 C 语言中,算术运算同样存在着规则。当算术表达式由多个不同的算术运算符组成时,会按照运算符的优先级进行运算:先乘除后加减、先括号里再括号外,优先级相同,按照自左向右的顺序进行运算,例如:a*10+(100%3)-b/10。 小括号优先级最高,先计算(100%3)。*与/优先级相同,自左向右运算,先计算 a*10,再计算 b/10。+与-优先级相同,自左向右运算,先计算加法,再计算减法。 赋值运算符“=”,是 C 语言中使用最多的运算符,作用是将一个值(字面量值、变量值、表达式计算结果)复制一份给另一个变量。赋值运算符常见形式: 【注意】 将赋值运算符、小括号、操作数连接起来、符合 C 语言规则的式子被称为赋值表达式,参与运算的操作数可以是字面量、变量、表达式、函数……等。例如:a= 1+1、a=2、a=a+1、a=b 等等。 b=a+1 的读法是“a+1 的值赋值给 b”,很显然 a=a+1 的读法是“a+1 的值赋值给 a” 赋值运算符在 C 语言中优先级是最低的。赋值运算都是最后执行,例如: 前面讲过,C 语言中任何一个表达式都会产生一个结果值,赋值表达式也是如此。赋值表达式的结果就是=左边被赋值变量的值,例如: 在赋值运算符前加上其他运算符,就可以构成复合运算符。例如:在“=”前加一个“-”就构成复合运算符“-=”。在 C 语言中,常用的复合赋值运算有以下几种: 自增运算符“++”由 2 个“+”组成,作用是将变量值增加 1,在 C 语言中,“++”的位置不同表达的意思也不相同,需要分 2 种情况: 这样,a++和++a 都相当于 a=a+1,后面讲差别。 将自增运算符、小括号、操作数连接起来、符合 C 语言规则的式子被称为自增运算表达式,参与运算的操作数只能是变量,不能是字面量、表达式等。 我们知道,C 程序中表达式都会返回一个结果值,自增运算表达式也是如此。如果是“变量++”,返回变量自加之前的值;如果是“++变量”,返回变量自加之后的值。因此,上述程序中,b=a++和 b=++a 执行过程等价于以下形式: 自减运算符“--”由 2 个“-”组成,作用是将变量值减少 1。 关系运算符又称“比较运算符”用于执行程序中的比较运算。C 语言中所有关系运算符都是双目运算符,也就是说需要两个操作数参与运算,常用的关系运算符有以下 6 种: 将关系运算符、小括号、操作数连接起来、符合 C 语言规则的式子被称为关系表达式, 关系表达式的结果值是整数类型,因此采用%d 格式输出。 逻辑运算符用于对程序中的逻辑值进行运算。在日常生活中逻辑值只有 2 种:“真”或“假”。但是 C 语言中没有逻辑类型,为了解决这个问题,采用 0 代表逻辑“假”,非 0代表逻辑“真”。 C 语言提供的逻辑运算符有以下 3 种: 逻辑与(&&)和逻辑或(||)都是双目运算符,需要两个操作数才能进行运算。逻辑非(!)是 将逻辑运算符、小括号、操作数连接起来、符合 C 语言规则的式子被称为逻辑表达式, 条件运算符由“?”与“:”两个符号组成,必须一起使用,是 C 语言中唯一的三目运算符,需要三个操作数才能进行运算。 求字节数运算符“sizeof”用于计算变量、字面量、类型所占字节数。该运算符是 C 语言中唯一一个使用单词作为运算符的: C语言运算符与表达式 标签:赋值 数值 有关 再计算 计算 执行 赋值运算符 lang 大于等于 原文地址:https://www.cnblogs.com/wangyueping/p/14497573.html(一) 算术运算符
1. 常用算术运算符
#include
#include
#include
2. 算术表达式
3. 算术运算符优先级
和数学中一样,可以通过小括号()来改变运算优先级,不过 C 语言中只有(),没有[]、{},()可以嵌套多层。a*(10+100%(3-b)/10);(二) 赋值运算符和赋值表达式
1. 赋值运算符
变量 = 表达式;
a = 1+1; //先计算表达式 1+1,然后将结果值赋给变量 a
变量 = 字面量;
a= 2; //将数值 2 直接赋值给变量 a
变量 = 变量;
a= b; //将变量 b 的值赋值给变量 a
示例代码如下:#include
赋值运算符的右边必须是变量,以下写法都是错误的:
20=30; //错误写法
100=a; //错误写法
左边也不能是表达式:a+2=5; 这样也错。2. 赋值表达式
3. 赋值运算符优先级
c=a*10+100%3-b/10;
上述程序中,既有算术运算符,又有赋值运算符。因为赋值运算符优先级是最低的,因此可以将上述程序分为 2 部分看待,先执行=右边的算术表达式,然后将计算结果赋值给=左边的变量 c。4. 赋值表达式的结果
int a=10;
int c =(a=a+1);
printf("%d\n",c);
printf("%d\n",c=c+1);5. 复合赋值运算符
a+=10; //等价于 a=a+10;
a-=10; //等价于 a=a-10;
a*=10; //等价于 a=a*10;
a/=10; //等价于 a=a/10;
a%=10; //等价于 a=a%10;(三) 自增(++)、自减(--)运算符
1. 自增(++)运算符
++x; //x 先自增 1,然后再参加运算
x++; //x 先参与运算,然后自增 1
示例代码如下:#include
2. 自增运算表达式
以下都是错误写法:
++100 //错误写法,不能是字面量
(a+1)++ //错误写法,不能是表达式
前面讲过,“++”的位置不同表达的意思也不相同,下面通过例子来深入了解一下:#include
b=a++等价于
b=++a 等价于
b=a;
a=a+1;a=a+1;
b=a;3. 自减(--)运算符
也分为 i--、--i 的区别。和++类似。(四) 关系运算符与关系表达式
1. 关系运算符
= 大于等于
== 等于
!= 不等于
注意=别写反了。2. 关系表达式
参与运算的操作数可以是字面量、变量、表达式、函数……等。例如:
1>2 //1 是否大于 2
1+1==b //1+1 的结果是否等于变量 b
10*20!=c //10 乘 20 的结果是否不等于变量 c
关系表达式的运算结果只有 2 种:0 或 1。0 表示关系表达式为假,1 表示关系表达式为
真。例如:#include
printf("%d\n",a==b);
printf("%d\n",a=b);
不要把 a==b 写成 a=b,a=b 就是赋值表达式
(五) 逻辑运算符与逻辑表达式
1. 逻辑运算符
举个例子:“李小龙是男人”是“真”,“李小龙是德国人”是“假”。
“李小龙是男人 并且 李小龙是德国人”是“假”,“李小龙是男人 或者 李小龙是德国人”是“真”。
&& 逻辑与(并且)
|| 逻辑或(或者)
! 逻辑非
单目运算符,只需一个操作数即可进行运算。
C 语言逻辑运算符表示的含义如表所示:
运算符
名称
举例
说明
&&
逻辑与
a&&b
a 和 b 都为真,结果为真,否则为假
||
逻辑或
a||b
a 或 b 有一个为真,结果为真。a 和 b 都为假时,结果才为假
!
逻辑非
!a
a 为假,!a 结果为真;a 为真,!a 结果为假
2. 逻辑表达式
参与运算的操作数可以是字面量、变量、表达式……等。例如:
1 && 1
a&&1
a || b
1 ||b
1>2 && 3
!a(六) 条件运算符与条件表达式
条件表达式的一般使用形式为:
表达式 1?表达式 2:表达式 3
条件表达式的运算规则为:如果表达式 1 的结果为真,以表达式 2 的值作为整个条件表达式的值,否则以表达式 3 的值作为整个条件表达式的值。例如:
max=a>b?a:b
如果 a>b 为真,将 a 赋值给 max,否则将 b 赋值给 max。a>b?a:b 被称为条件表达式。
一般为了代码结构清晰,建议使用小括号将条件运算表达式包裹起来,比如:max=(a>b?a:b)。
下面通过例子来了解一下条件运算符的使用。#include
(七) sizeof 运算符
sizeof(类型)、sizeof(字面量)、sizeof(变量)
上述表达式的运算结果为:括号中的类型在当前系统下所占字节数。
下面通过 sizeof 计算 C 语言中常用数据类型所占字节数。sizeof 计算类型所占字节数
#include
上一篇:Java基础篇——多线程
下一篇:Python安装及配置