C语言操作符

算术操作符

+    -   *   /   %

%只能用于整数

/号两边如果有一个浮点数则执行浮点数除法,否则执行整数除法

原码、反码、补码

对于整型来说:数据存放内存中其实存放的是补码。

正的整数的原码、反码、补码相同

负的整数的原码、反码、补码不同,需要计算

负的反码:原码的符号位不变,其他位按位取反就是反码

负的补码:反码的基础上+1

位移操作符

<< 左移操作符
>> 右移操作符

左移操作符:左边抛弃,右边补0

右移操作符: 

1、逻辑位移:左边用0填充,右边抛弃

2、算术位移:左边用原来的表示正负符号填充,右边抛弃(最左边的第一位数是0表示正数、1表示负数)

不同的编译器会选择其中的一个方法进行右移操作符运算,通常采用第二个

位操作符

&(与):同为1才为1,否则为0
|(或):有1就为1
^(异或):不同为1,否则为0
注:他们的操作数必须是整数。

都是对数据的补码进行以上操作

不用临时变量进行两个变量的交换

#include <stdio.h>
int main()
{
	int a = 10;
	int b = 5;
	printf("a=%d b=%d\n", a, b);
	//3 ^ 3 =0 , 0 ^ 5 = 5
	a = a ^ b;
	b = a ^ b;//把上面的a带进去即a^b^b > a^0
	a = a ^ b;//同理,b带入即 a^a^b > 0^b
	printf("a=%d b=%d\n", a, b);
	return 0;
}

赋值操作符

在定义了一个变量的值后又重新为他赋的新值

int a = 10;
a = 20;//赋值

复合赋值符

+=    -=    *=    /=    %=
>>=    <<=    &=    |=    ^=

即 a = a (对应的操作符) 1

单目操作符 

只能作用与一个对象的数

!           逻辑反操作
-           负值
+           正值
&           取地址
sizeof      操作数的类型长度(以字节为单位)
~           对一个数的二进制按位取反
--          前置、后置--
++          前置、后置++
*           间接访问操作符(解引用操作符)
(类型)       强制类型转换

 关系操作符

>
>=
<
<=
!=   用于测试“不相等”
==      用于测试“相等”

逻辑操作符

&&    逻辑与 从左往右,其中有一个为假则为假,后面的不用运算了
||    逻辑或 从左往右,其中一个为真则为真,后面的不用运算了

条件操作符

exp1         ?        exp2           :           exp3
(判断条件)    (条件成立时运行的)       (条件不成立时运行的)

逗号表达式

exp1, exp2, exp3, …expN
逗号表达式,就是用逗号隔开的多个表达式。
逗号表达式,从左向右依次执行。整个表达式的结果是最后一个表达式的结果。

访问一个结构的成员

.          结构体.成员名

->        结构体指针->成员名 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值