C语言常见操作符(补充)

前言:

在这篇文章中,我们将会认识到更多的C语言操作符,并通过简单的介绍和相应的代码,来更好的了解它们。

位操作符:

位操作符在计算机中以二进制的形式,进行运算。

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

操作符

名称

作用

&

按位与

两个数同时为1,结果才为1。

|

按位或

两个数同时为0,结果才为0。

^

按位异或

两个数相等,结果为0。两个数相异,结果为1。

示例代码:

//位操作符
#include <stdio.h>
int main()
{
	int number1 = 6;
	int number2 = 8;
	printf("number1 & number2 = %d\n", number1 & number2);
	printf("number1 ^ number2 = %d\n", number1 ^ number2);
	printf("number1 | number2 = %d\n", number1 | number2);

	return 0;
}

 运行结果:

赋值操作符:

操作符

示例

含义

+=

a += b

a = a + b

-=

a -= b

a = a -b

*=

a *= b

a = a * b

/=

a /= b

a = a / b

%=

a %= b

a = a % b

>>=

a >>= b

a = a >> b

<<=

a <<= b

a = a << b

&=

a &= b

a = a &b

^=

a ^= b

a = a ^ b

|=

a |= b

a = a | b

=

a = b

b的值赋予a

示例代码:

//赋值运算符
#include <stdio.h>
int main()
{
	int a = 20;
	int b = a;
	printf("b = %d\n", b);
	b += a;
	printf("b = %d\n", b);
	b -= a;
	printf("b = %d\n", b);
	b *= a;
	printf("b = %d\n", b);
	b /= a;
	printf("b = %d\n", b);
	b = 32;
	a = 3;
	b %= a;
	printf("b = %d\n", b);
	b &= a;
	printf("b = %d\n", b);
	b ^= a;
	printf("b = %d\n", b);
	b |= a;
	printf("b = %d\n", b);
	b <<= a;
	printf("b = %d\n", b);
	b >>= a;
	printf("b = %d\n", b);

	return 0;
}

运行结果: 

单目运算符:

像A+B中的加号对A和B两个数进行操作,称为双目操作符。单目操作符只对一个数进行操作。

! 逻辑反操作                         - 负值                         + 正值                         & 取地址

sizeof 计算变量类型占用空间的大小

~ 对一个数的二进制进行取反                                                                         -- 前置后置--

++ 前置后置++                                                                                           * 间接访问操作符  

(类型)强制类型转换

!逻辑反操作

在C语言中规定,0表示假,非零表示真。(常用1表示真)

如果一个变量的值是4(真),对其逻辑反操作,这个变量成为假,输出0。如果一个变量的值是0(假),对其逻辑反操作,这个变量成为真,输出1。

示例代码:

//逻辑反操作
#include <stdio.h>
int main()
{
	int a = 4;
	int b = 0;
	printf("!a = %d\n", !a);
	printf("!b = %d\n", !b);
	return 0;
}

运行结果:

sizeof  操作符 

sizeof 可以用来计算变量(变量大小就是变量类型的大小)、类型、数组总大小、数组单个元素大小、也可以通过数组总大小除以数组单个元素的大小,求出数组中元素个数。

示例代码:

//sizeof
#include <stdio.h>
int main()
{
	int number = 20;
	//求类型大小
	printf("%d\n", sizeof(int));
	//求变量大小
	printf("%d\n", sizeof(number));
	int room[10] = { 1,2,3,4,5,6,7,8,9,10 };
	//求数组总大小
	printf("%d\n", sizeof(room));
	//求数组单个元素大小
	printf("%d\n", sizeof(room[0]));
	//求数组中元素个数
	int amount = sizeof(room) / sizeof(room[0]);
	printf("%d\n", amount);

	return 0;
}

 运行结果:

~ 取反操作符 

~ 用于对一个二进制数进行取反,原先的0改成1,原先的1改成0。

示例:

示例代码:

//~取反操作符
#include <stdio.h>
int main()
{
	int number = 19;
	int result = ~19;
	printf("~19 = %d", result);

	return 0;
}

 前置后置 ++--

前置++                          后置++                          前置--                          后置--

前置++:如b = ++a;先将变量a的值加一,再将变量a的值赋予变量b(先++后使用)

后置++:如b = a++;先将变量a的值赋予变量b,再把变量a的值加一(先使用后++)

前置--:如b=--a;先将变量a的值减一,再把变量a的值赋予变量b(先--后使用)

后置--:如b=a--;先将变量a的值赋予变量b,再将变量a的值减一(先使用后--)

示例代码:

//前后置++--
#include <stdio.h>
int main()
{
	int a = 10;
	int b = 2;
	b = ++a;
	printf("b = %d\n", b);
	printf("a = %d\n", a);
	a = 20;
	b = a++;
	printf("b = %d\n", b);
	printf("a = %d\n", a);
	a = 15;
	b = --a;
	printf("b = %d\n", b);
	printf("a = %d\n", a);
	a = 9;
	b = a--;
	printf("b = %d\n", b);
	printf("a = %d\n", a);

	return 0;
}

运行结果:

(类型)操作符 

(类型)可以强制将一种类型的数据转换为另一种类型

注:不建议使用

示例代码:

//(类型)
#include <stdio.h>
int main()
{
	int a = (int)13.14;
	printf("a = %d", a);

	return 0;
}

 

关系操作符

关系操作符

含义

示例

>

大于

A > B

<

小于

A < B

>=

大于等于

A >= B

<=

小于等于

A <= B

!=

不等于

A != B

==

等于

A == B

注:关系操作符常用于选择语句和循环语句中,作为判断条件

实际上,关系操作符运算的结果是布尔值,如果A>B成立,输出1(真),如果A>B不成立,输出0(假)。

示例代码:

//关系运算符
#include <stdio.h>
int main()
{
	int a = 34;
	int b = 56;
	printf("%d\n", a > b);
	printf("%d\n", a < b);
	printf("%d\n", a >= b);
	printf("%d\n", a <= b);
	printf("%d\n", a == b);
	printf("%d\n", a != b);
	return 0;
}

运算结果:

逻辑操作符:

&& 逻辑与                                                                                                         ||逻辑或

&&逻辑与:两个条件必须都为真,结果才为真。

||逻辑或:两个条件只要有一个为真,结果就为真。

示例代码:

#define _CRT_SECURE_NO_WARNINGS 1
//逻辑操作符
#include <stdio.h>
int main()
{
	int a = 5;
	int b = 7;
	int c = 0;
	int d = 0;
	printf("%d\n", a && b);
	printf("%d\n", a && c);
	printf("%d\n", a || b);
	printf("%d\n", a || c);
	printf("%d\n", c || d);

	return 0;
}

 运行结果:

条件操作符(三目操作符):

标准格式:exp1? exp2: exp3

语法:当exp1成立的时候,做exp2的计算,整个表达式的结果是exp2的结果。

当exp1不成立的时候,做exp3的计算,整个表达式的结果是exp3的结果。

示例代码:

#include <stdio.h>
int main()
{
	int number1 = 0;
	int number2 = 0;
	int max = 0;
	printf("please enter two numbers on the there :\n");
	scanf("%d %d", &number1, &number2);
	number1 > number2 ? max = number1 : max = number2;
	printf("max = %d", max);

	return 0;
}

 运行结果:

逗号表达式:

exp1,exp2,exp3,exp4…expn

逗号表达式:由逗号隔开的一串表达式

该串表达式,从左边往右边计算,直到算出最后一个表达式的值,最后一个表达式的值是整串表达式的值。

示例代码:

//逗号操作符
#include <stdio.h>
int main()
{
	int a = 6;
	int b = 3;
	int c = 7;
	int d = 0;
	d = ( a = a + 3, b = a + c, c = a + b);
	printf("d = %d", d);

	return 0;
}

运行结果:

 

其它操作符:

下标引用、函数调用、结构成员

[]                                                         ()                                                                                         .

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值