C语言 运算符与表达式

1.运算符
用于进行某种运算的符号
通过涉及到的数目分为单目运算符(i++),双目运算符(+ - * / % …),三目运算符( (判断)? A:B)
在C语言中a+b 是不等价与 b+a 的,ru:(i++)+ (i+j) 与 (i+j)+ (i++)
C语言运算优先级,单目运算符 > 算术运算符 > 关系运算符 > 逻辑运算符 > 条件运算符 > 赋值运算符 > 逗号运算符

1)算术运算符
				进行算术运算的符号,
				++  -- :单目运算符
						注意(++i)与(i++)是不同的。i++先输出后运算,++i先运算后输出
						int i=1;
						printf("%d",i++); // 1        printf("%d",++i); // 2
						执行完此语句后i的值都是2+  -   *    /   %  双目运算符
				/ 	得到的结果为商,如3/2 得到的结果为 1  . 		5/2的结果为2
				% 得到的结果为余数   如6%4   得到的结果为 2
				当涉及到两个不同类型的数据,如  doubleint ,需要向精准度高的转换。
	2)关系运算符
				用来判断两个数的大小关系
				< 	>  >=   <= ==(等于)    !=(不等于)
				关系成立结果为1,不成立结果为0
				值得注意的是5>4>3 这种写法结果为0,步骤为,5>4结果为1,然后1>3结果为0
	3)逻辑运算符
				!逻辑非		单目运算符 “取反”
				&&  逻辑与     ||  逻辑或  双目运算符  具有(惰性运算!)
				逻辑真:(非0或者1)
				逻辑假:0
	4)位运算符
				按照bit位进行运算
				& 按位与				都是1则为1
				| 按位或				有1就为1
				^ 按位异或 			不同为1,相同为0
				~ 按位取反			1变成00变成1
				<<按位左移		>>按位右移
							左移    右边补0,舍弃超出的高字节
							右移  	丢弃右边的低字节,高字节,有符号补符号位,无符号(定义为unsigned)补0
		两个数交换,不涉及到第三个元素:
		{
			int a=3,b=4;
			a=a^b; 
			b=a^b;
			a=a^b;
		 }
	5)赋值运算符:
				=  双目运算符,优先级只比逗号运算符高
				赋值运算符要求左边的操作数必须有左值(可写的地址)
				5=5 ERROR
				2+3 = 5 ERROR
				i++ = 5 ERROR    左边不能为表达式
				a += 5 += 6 ; ERROR 			
	6)条件运算符
				expression  ? a :b
				如果表达式expression值为真,整个表达式的值就是a的值
				如果表达式expression值为假,整个表达式的值就是b的值 
	7)逗号运算符
				优先级最低,结合性从左至右 ,最后的值为最后一个的值
				a = (a = 6,b = 5);   //a = =5
				求值顺序: 
				先求表达式1的值,再表达式2的值 。。。。。最后
				求表达式n的值。
				整个逗号表达式的值就是表达式n的值。
	8)	指针表达式
				&取地址  *取值
	9)求字节运算符 sizeof 
				单目运算符 ,求一个对象或类型所占空间字节数。
				sizeof(x) 求x的类型,不要求x存在,但是要求x的类型是确定的
	10) 分量运算符: 
				求结构体中成员变量(分量)
					.
					->		
	11) 下标运算符 
				[] 
				int a[10];	a[0]    a[1]
	12) 强制转换运算符 
				(类型)
				eg: 
				(unsigned char )255		
	13) 其他 

2.表达式
什么是表达式?
表达某个意思的式子

在C语言,表达式一般是指用运算符连接起来的式子
		表达式一定会有一个值,这个值就是上面的表达式的"某个意思"
		a = 5
		a = 5, n = 6														
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值