操作符那些事(c语言基础)

目录

一、算术操作符

二、赋值操作符

 三、单目操作符

四、关系操作符

五、逻辑操作符

 六、条件操作符

七、逗号表达式

八、下标引用和函数调用

九、移(二进制)位操作符

 十、(二进制)位操作符


前言

这是整理的一些基础c语言相关的操作符

希望能帮助到大家

操作平台:VS2019  、 画图

一、算术操作符

+ - * / %(取模)

都是我们常见的操作符,但需要注意:

1.计算类型 - 只有有浮点型数据参与运算的时候得出的结果才会是浮点型

2.取模操作符(%) - 两个数据必须都是整型才能计算

操作符那些事(c语言基础)_第1张图片

二、赋值操作符

= 可以给定义的变量赋值

操作符那些事(c语言基础)_第2张图片

复合赋值符

+= -= *= /= %= ( &= |= ^= >>= <<= ) -> 位操作符后面讲

复合赋值符的效果如出一辙 , 这里拿+=举例

a += 3 即可表示为 a = a +3;

可以理解为把变量a加上3

当然,从下图可以看出结果是一样的:

操作符那些事(c语言基础)_第3张图片

 三、单目操作符

---------------------------------------------------------------------------------------------------------------------------------

 +  -  表示数值的正负,无需多说

---------------------------------------------------------------------------------------------------------------------------------

--            前置、后置--

++          前置、后置++

前置->先++/--后使用

后置->先使用后++/--

 ++/--的值默认为1                                 (记忆技巧:从左往右顺着看,先看到什么就做什么操作)

操作符那些事(c语言基础)_第4张图片

观察结果可知,++操作符位置不同,运算不同,结果也不同 

---------------------------------------------------------------------------------------------------------------------------------

sizeof      操作数的类型长度(以字节为单位)

在c语言中,不同类型变量占据不同空间大小

而我们恰可以用操作符sizeof来观察不同变量的大小

如sizeof(int)的返回值就是int变量的大小,又可以用printf打印

可以得到:

操作符那些事(c语言基础)_第5张图片

 --------------------------------------------------------------------------------------------------------------------------------

四、关系操作符

>   >=   <   <=      基本判断,无需多说

这里重点讲 !=  和 ==

!=     用于测试“不相等”

==    用于测试“相等”

(注意,在c语言逻辑判断中,非0表示符合条件判断(真),0表示不符合条件判断(假))

比如

当我们写出 (1 == 2)  显然1不等于2,则判断为假,返回一个0

操作符那些事(c语言基础)_第6张图片

 由上图可知,a==3不成立,不会执行该if下的语句

五、逻辑操作符

&&       逻辑与(表达式1)&&(表达式2)

||          逻辑或(表达式1)||(表达式2)

在&&中,表达式1和表达式2必须同时成立才为真

在||中,表达式1和表达式2只要有一个成立就为真

如下图所示

操作符那些事(c语言基础)_第7张图片

 六、条件操作符

exp1 ? exp2 : exp3      -      (表达式1)?(表达式2):(表达式3)

首先判断 表达式1

如果成立,   则执行表达式2;

如果不成立,则执行表达式3;

逻辑图:

操作符那些事(c语言基础)_第8张图片

实际图:

操作符那些事(c语言基础)_第9张图片

 另:如果只是简单的if语句,可以用该操作符套用,更加简洁美观。

但不建议嵌套使用(太杂乱)

七、逗号表达式

 exp1, exp2, exp3, …expN                       (表达式1),(表达式2),(表达式3),.....(表达式n)....

逗号表达式,就是用逗号隔开的多个表达式。

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

操作符那些事(c语言基础)_第10张图片

 分析:

 操作符那些事(c语言基础)_第11张图片

 *整个表达式的结果是最后一个表达式的结果。

八、下标引用和函数调用

[ ] 下标引用操作符   -   操作数:一个数组名 + 一个索引值

int arr[10];//创建数组
arr[9] = 10;//下标引用操作符。

如上,arr是数组名+9是索引值(数组下标)

---------------------------------------------------------------------------------------------------------------------------------

( ) 函数调用操作符

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

#include
void text()
{
    printf("测试1");
}
int main()
{
    text();//调用text函数
    return 0;
}

操作符那些事(c语言基础)_第12张图片

 即:函数名+()     就是调用这个函数

**************************************************************************************************************

                                                      接下来的内容涉及一些内存

*******************************                                                               **********************************

首先补充一点

数据在内存中以二进制形式存储(这里拿int举例)

int a = 10;  在内存中为

九、移(二进制)位操作符

<< 左移操作符            (操作数只能是整数)

将所有二进制位向左移动

下面先看例子:

操作符那些事(c语言基础)_第13张图片

分析:

操作符那些事(c语言基础)_第14张图片

---------------------------------------------------------------------------------------------------------------------------------

 >> 右移操作符

首先右移运算分两种:

        1. 逻辑移位 左边用0补,右边丢弃

        2. 算术移位 左边用原该值的符号位补,右边丢弃

int a = -1;

内存中为

操作符那些事(c语言基础)_第15张图片

*注:不要移动负数位(c语言标准未定义)

 十、(二进制)位操作符

&     按位与

|      按位或

^     按位异或

*注:他们的操作数必须是整数。

    int a = 10;
    int b = 20;
    a & b;
    a | b;
    a ^ b;

 分析:

&       -        对应比较,都有1则变为1,有0则0

操作符那些事(c语言基础)_第16张图片

---------------------------------------------------------------------------------------------------------------------------------

 |       -         对应比较,有1则1

操作符那些事(c语言基础)_第17张图片

---------------------------------------------------------------------------------------------------------------------------------

 ^      -          对应比较  相同为0,相异为1

操作符那些事(c语言基础)_第18张图片

**************************************************************************************************************

C语言操作符基础就到此,因为作者水平有限,欢迎提出意见或建议

你可能感兴趣的:(初识c语言,c语言)