运算符与表达式

目录

1.算数运算符与算数表达式

2.复合运算符

3.自增自减运算符

 4.强制类型转换运算符

5.关系运算符和关系表达式

6.逻辑运算符与逻辑表达式

7.条件运算符与条件表达式


1.算数运算符与算数表达式

        算术运算符即+,-,*,/,%(加减乘除取余),基本数学知识不过多介绍,值得注意的是/和%运算符被除数不可以为0,且%运算的操作数必须是整型,不然会报错。

        另外需注意的是,在C语言中,整数与整数进行算数运算结果还是整数类型,即使有小数部分也会直接舍弃,比如3/2=1,而不是1.5;整数浮点数、浮点数运算结果为浮点数,比如3/2.0=1.5。

        算数运算式的优先级:第一级:乘除取余,第二级:加减 (从左往右,有括号先算括号里的)

        实例:将一个3位数的百十个位分别输出,用空格隔开

//输入一个三位数,将百十个位分别输出,用空格隔开
#include<stdio.h>
int main() {
	int a;
	scanf("%d", &a);
	printf("%d %d %d", a / 100 % 10, a / 10 % 10, a % 10);
	return 0;
}

2.复合运算符

        在赋值运算符“=”前加上其他算术运算符,就构成复合运算符。如下:

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;



a*=3+5    //等价于a=a*(3+5),而不是a=a*3+5
//a它会把=后的当做一个整体对待,相当于加了括号

3.自增自减运算符

        自增运算符++,自减运算符--。作用是将变量的值加一和减一。它的操作数只能是一个变量,不能是常量或者表达式,例如a++(后自增) ,++a(前自增) , a--(后自减) , --a(前自减)都是对的,但是5++,(a+b)++是错的。

        C语言中任何一个表达式都会返回一个值,a*b这个表达式就返回a*b的结果,同理,+-/%也是。下面来讨论++,--。如果是变量++,返回变量自增前的值;如果是++变量,返回变量自增后的值:

        a=b++;等价于a=b; b=b+1;

        a=++b;等价于b=b+1; a=b;

        然而不论是变量++还是++变量,最终变量的值都会+1。而--同理。

        展示:变量++

#include<stdio.h>
int main() {
	int a = 9;
	printf("%d\n", a++);//输出表达式a++的值
	printf("%d\n", a);//输出变量a的值
	return 0;
}

        运行结果:

        展示:++变量

#include<stdio.h>
int main() {
	int a = 9;
	printf("%d\n", ++a);//输出表达式++a的值
	printf("%d\n", a);//输出变量a的值
	return 0;
}

        运行结果:

 4.强制类型转换运算符

        强制类型转换运算符由“()”和数据类型两部分构成形式为(数据类型),一般形式为:

        (数据类型)常量

        (数据类型)变量

        (数据类型)(表达式)

5.关系运算符和关系表达式

        <小于:如果左侧的数小于右侧,则返回1,否则返回0

        <=小于等于:如果左侧的数小于等于右侧,则返回1,否则返回0

        >大于:如果左侧的数大于右侧,则返回1,否则返回0

        >=大于等于:如果左侧的数大于等于右侧,则返回1,否则返回0

        ==等于:如果左侧的数等于右侧,则返回1,否则返回0

        !=不等于:如果左侧的数不等于右侧,则返回1,否则返回0

6.逻辑运算符与逻辑表达式

        用于对程序中的逻辑值进行运算,逻辑值有两种:真或者假,用0表示假,非0表示真。结合上面关系表达式,如果值为1则表示真,值为0表示假。

        逻辑运算符:

        &&(逻辑与):a&&b,ab同时为真才真,返回1,否则为假返回0

        ||(逻辑或):a||b,ab同时为假才假,返回0,否则为真返回1

        !(逻辑非):!a,若a为假返回真,若a为真返回假

        短路运算:其实是对&&和||的一种优化,表现为如果左侧为假那么&&的右侧就不再进行计算了,无论如何结果都为假;  如果左侧为真那么||的右侧就不再进行计算了,无论如何结果都为真。

        逻辑运算常常与关系运算相结合,关系运算的结果为0或1,也就是假或者真。

7.条件运算符与条件表达式

        一般形式为:表达式1?表达式2:表达式3

        运算规则为:如果表达式1的值为真,则返回表达式2的值,否则返回表达式3的值。

        实例:输入两个整数,输出较大的一个数

#include<stdio.h>
int main() {
	int a, b;
	scanf("%d%d", &a, &b);
	printf("%d", a > b ? a : b);
	return 0;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值