前言:
在这篇文章中,我们将会认识到更多的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;
}
运行结果:
其它操作符:
下标引用、函数调用、结构成员
[] () .
标签:变量,示例,int,常见,C语言,--,操作符,printf From: https://blog.csdn.net/2401_84689376/article/details/140653273