栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【C语言】操作符

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【C语言】操作符

1. 算数操作符

+加法,-减法,*乘法,/除法,%取模

  1. %操作符的两个操作数必须为整数。7%2=1
  2. +-*/四个操作符可以作用于整数和浮点数。
  3. /操作符的两个操作数都为整数时,执行整数除法。只要有一个是浮点数,执行浮点数除法。7/2=3,7.0/2=3.5,7/2.0=3.5,7.0/2.0=3.5
2. 移位操作符

<<左移,>>右移

2.1 左移操作符

整数的二进制表示有3种:原码、反码、补码。正整数的原码、反码、补码相同。负整数的反码是原码符号位不变,其他位按位取反,补码是反码+1。整数在内存中存储的是补码。

7:

原码:00000000000000000000000000000111

反码:00000000000000000000000000000111

补码:00000000000000000000000000000111

-7:

原码:10000000000000000000000000000111

反码:11111111111111111111111111111000

补码:11111111111111111111111111111001

移位规则:左边抛弃,右边补0。

int a = 7;

int b = a<<1;

0[00000000000000000000000000001110]

int a = -7;

int b = a<<1;

1[11111111111111111111111111110010]

2.2 右移操作符

移位规则:

  1. 逻辑移位:左边补0,右边抛弃。
  2. 算术移位:左边补原符号位,右边抛弃。(常见编译器都是算术移位)

算术移位:

int a = 7;

int b = a>>1;

[00000000000000000000000000000011]1

int a = -7;

int b = a<<1;

[11111111111111111111111111111100]1

3. 位操作符

&按位与,|按位或,^按位异或

位操作符通过逐位比较两个运算对象,生成一个新值。对于每个位:

  1. &:两个操作数相应的位都为1,结果为1。
  2. |:两个操作数相应的位至少有一个为1,结果为1。
  3. ^:两个操作数相应的位只有一个为1,结果为1。

3的补码:00000000000000000000000000000011

-5的补码:11111111111111111111111111111011

int a = 3;

int b = -5;

int c = a & b;

00000000000000000000000000000011

int c = a | b;

11111111111111111111111111111011

int c = a ^ b;

11111111111111111111111111111000

3^3:

011

011

000

->a^a=0

0^3:

000

011

011

->0^a=a

//不创建临时变量实现两个数的交换
#include 

int main()
{
	int a = 10;
	int b = 20;
	a = a ^ b;//10^20
	b = a ^ b;//10^20^20=10^0=10(^操作符支持交换律)
	a = a ^ b;//10^20^10=0^20=20
	printf("a = %d b = %dn", a, b);
	return 0;
}
4. 赋值操作符

=赋值

复合赋值符:+=,-=,*=,/=,%=,<<=,>>=,&=,|=,^=

如,x += 10; 等价于x = x + 10;

5. 单目操作符

!逻辑反操作

-负值,+正值

&取地址,*间接访问操作符(解引用操作符)

sizeof计算变量或类型所创建的变量的长度(单位:字节)

~对一个数的二进制按位取反

++自增,--自减(前置++:先++,后使用,后置++:先使用,后++)

(类型)强制类型转换

6. 关系操作符

>大于,>=大于或等于,<小于,<=小于或等于,!=不相等,==相等

7. 逻辑操作符

&&逻辑与,||逻辑或

8. 条件操作符

exp1?exp2:exp3

先求解exp1,若其值为真,则将exp2的值作为整个表达式的取值,否则将exp3的值作为整个表达式的取值。

9. 逗号表达式

exp1,exp2,exp3,...,expN

逗号表达式,从左向右依次执行。整个表达式的结果是最后一个表达式的结果。

10. 下标引用操作符

[]下标引用操作符

操作数:一个数组名+一个索引值。如,arr[9]。

11. 函数调用操作符

接受一个或者多个操作数:第一个操作数是函数名,剩余的操作数就是传递给函数的参数。

如,test(),Add(a,b)。

12. 结构成员访问操作符

.         结构体.成员名

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/948289.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号