共计 2042 个字符,预计需要花费 6 分钟才能阅读完成。
1. 分类:
(1)加法“+”,或正值运算符,如 2 +9=11,+6。
(2)减法“_”,或负值运算符,如 9 -5=4,-5。
(3)乘法“”,如 4 8=32。
(4)除法“/”,如 7 /2=3,整除后果为整数,舍去小数,只取商。(5)求模“%”,或称求余运算符,要求两侧均为整数,如 9%2=1
2. 优先级:
() 〉 *、/、%、〉 +,–
自增自减运算符
1. 作用: 自增运算使单个变量的值增 1,自减运算使单个变量的值减 1。
2、运算规定:
(1)前置运算: 运算符放在变量之前:++a、–a,先使变量的值增
;(或减)1,而后再以变动后的值参加其它运算,即先增减、后运算。
(2)后置运算: 运算符放在变量之后:a++、a–,变量先参加其它
运算,而后再使变量的值增 (或减)1,即先运算、后增减。
举例:
#include<stdio.h>
int main()
{
int i=3,j;
j=i++;
printf("i=%d,j=%d\n",i++,j);
j=++i;
printf("i=%d,j=%d\n",++i,j);
j=--i;
printf("i=%d,j=%d\n",i--,j);
j=i--;
printf("i=%d,j=%d\n",--i,j);
return 0;
}
运行后果:
留神阐明:
(1)++ 和 – 只能用于变量,而不能用于常量或表达式。
如:(i+j)++ 或 5 – 是不非法的。
(2)++ 和 – 的联合方向是“自右至左”。
如:i=4, 则 -i– 相当于 -(i–)后果为 -4,而 i 的值为 3。
(3)运算符的组合准则是自左而右。
如:a+++ b 等价于 (a++)+b,而不是 a +(++b)。
(4)++ 和 – 罕用于循环语句中,使循环变量加(或减)1,指针变量中,使指针上移(或下移) 一个地位。
定义:
算术表达式是用算术运算符和括号将运算对象 (也称操作数) 连接起来的、合乎 C 语法规定的式子,其中运算对象能够是常量、变量、函数等。
例如:
a*b/c-1.5+’a’是一个非法的算术表达式。
留神阐明:
1)与数学表达式的书写模式的区别:
C 语言算术表达式的乘号 () 不能省略。例如:b2-4ac,应该写成 b b-4ac。
C 语言表达式中只能呈现字符集容许的字符。例如:πr2 应该写成 PIrr。
C 语言算术表达式不容许有分子分母的模式。例如:(a+b)/(c+d)不等于 a +b/c+d。
C 语言算术表达式只应用圆括号扭转运算的优先程序 (不能用{}[])。
(2) 各运算符的“优先级”和“联合性”:
在表达式求值时,按运算符的优先级高下秩序执行,如:a-b c 等价于 a -(bc)。
如果优先级别雷同,则按规定的“联合方向”,如表达式:a-b+ c 联合性为“自左向右”,所以等价于(a-b)+c。
C 对于简单表达式为了清晰起见能够加圆括号“()”强制规定计算程序。
2、赋值运算符与表达式
复合赋值运算符
+=,–=,*=,/=,%=,<<=,>>=,&=,”=,丨 =
个别模式:
变量 复合赋值符 = 表达式 ← → 变量 = 变量 运算符 表达式
例如:
a+5=5 等价于 a=a+5
x=y+7 等价于 x=x(y+7)
r%=p 等价于 r=r%p
定义:
由赋值运算符组成的表达式称为赋值表达式。
个别模式:
变量 = 表达式
例如:
x=5 赋值表达式 x = 5 的值为 为 5,x 的值也为 5。
x=1%2+(y=5) 赋值表达式的值为 6,x 的值也为 6,y 的值为 5。
a=(b=6)或 a =b=6 赋值表达式的值为 6,a、b 的值均为 6。
a+=a(a=5) 相当于 a =5+55,赋值 表达式的值为 30,a 的值最终也是 30。
性能:
赋值表达式的性能是计算表达式的值在赋予右边的变量。
赋值语句举例
语句编写:
#include<stdio.h>
int main()
{
int a; // 定义整型变量
a=34.567; // 赋值
printf("a=%d\n",a); // 输入后果
return 0;
}
运行后果:
留神阐明:
(1)赋值表达式加上一个分号则可形成赋值语句,即: 变量 = 表达式:
(2)赋值语句不是表达式,表达式能够用在其它语句或
表达式中,而语句只能作为一个独自的语句应用。(3)C 语言规定: 能够在定义变量的同时给变量赋值,也叫给变量初始化。例如:int x=5;
(4) 赋值运算时,当赋值运算符两边数据类型不同时,
零碎主动进行类型转换,转换准则是: 先将赋值号左边表达式类型转换为右边变量的类型,而后赋值。
3、逗号运算符
C 语言提供一种用逗号 ”,” 运算符,逗号运算符又称程序求职运算符。
表达式个别模式:
表达式 1,表达式 2,……,表达式 n
举例语句编写
#include<stdio.h>
int main()
{
int a=1,b=2,c=3,x,y; // 定义变量
y=(x=a+b,b+c,x+c); // 赋值表达式
printf("x=%d,y=%d\n",x,y); // 输入后果
return 0;
}
运行后果:
留神阐明:
(1)逗号表达式的求解过程为: 先求解表达式 1,再求解表达式 2,顺次类推。联合性自左向右。(2)表达式 n 的值就是整个逗号表达式的值。
(3)逗号运算符的优先级是所有运算符中最低的。