《C语言复习---操作符》

本节主要有以下内容:

一、算数操作符(5个)

二、条件操作符)(1个)

三、位操作符(6个)

四、赋值操作符(11个)

五、单目操作符(10)

六、关系运算符(6)

七、逻辑操作符(3)

八、逗号表达式(1)

九、下标引用、函数调用、结构成员(4)

十、操作符优先级

(个数有重复)

一、算数操作符(5个)

设A为10,B为20,对算数操作符进行以下举例:

《C语言复习---操作符》_第1张图片

 注意:

【1】除了%操作符,其他几个操作符可运用于整数和浮点数。

【2】对于/操作符,若两个操作数都为整数,则执行整数除法,若含有浮点数,就为浮点数除法。

【3】%操作数必须运用于整数运算,返回整数相除后的余数。

二、条件操作符(1个)

条件运算符是C语言中唯一一个三元运算符,由其组成的表达式成为条件表达式,其书写格式如下:

表达式1?表达式2:表达式3

它的含义是:当表达式1成立时,执行表达式2,否则执行表达式3.

举例:求出2个数中的较大者(两数不等)

#include 

int get_max(int a,int b)
{
    return a>b?a:b;
}

int main()
{
    int a=10;
    int b=20;
    printf("%d\n",get_max(a,b));
    return 0;
}

三、位操作符

《C语言复习---操作符》_第2张图片

 左移、右移详解:

【1】左移:

左边抛弃、右边补0

【2】右移:

1. 逻辑移位 左边用0填充,右边丢弃
2. 算术移位 左边用原来该值的符号位填充,右边丢弃

注意:左移和右移都不能移动负数位

提示:^操作符可用于不创建临时变量的条件下交换2个数

四、赋值操作符(11个)

《C语言复习---操作符》_第3张图片

五、单目操作符(10个)

《C语言复习---操作符》_第4张图片

 ++、--操作符详解

1.前置++、后置++

【1】相同点:变量都进行了自身+1操作

【2】不同点:在于表达式的值,前置++,则表达式的值为变量+1之后的值;后置++,则表达式的值为变量+1之前的值。

2.前置--、后置--(与前置++、后置++同理)

针对前置++、后置++对比:

#include 

int main()
{
    int i=0;
    int j=0;
    printf("%d\n",++i);
    printf("%d\n",j++);
    return 0;
}

 《C语言复习---操作符》_第5张图片

六、关系运算符(6个)

设A为10,B为20,对关系操作符进行以下举例:

《C语言复习---操作符》_第6张图片

七、逻辑操作符(3个)

设A为1,B为0,对逻辑操作符进行以下举例:

《C语言复习---操作符》_第7张图片

八、逗号表达式

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

其书写形式如下:

表达式1,表达式2,表达式3……

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

1.下标引用操作符--> []

操作数:一个数组名 + 一个索引值

int arr[5]={1,2,3,4,5};
//下标访问数组
arr[0]=1;

2.函数调用操作符--> ()

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

int Add(int a,int b)
{    
    return a+b;
}

//函数调用
Add(10,20);

3.访问结构成员--> . ->

. 使用:结构体.成员

-> 使用:结构体指针->成员

#include 
#include 

struct Stu
{
    char name[20];
    char gender[3];
    int age;
    int id;
};

int main(){
    struct Stu stu;
    struct Stu* ps=&stu;

    //.访问
    stu.id=18;

    //->访问
  strcpy(ps->name,"zhangsan");
    
    return 0;
}

 

十、操作符优先级 

《C语言复习---操作符》_第8张图片

《C语言复习---操作符》_第9张图片

《C语言复习---操作符》_第10张图片

 总结:

优先级:下标引用-->单目-->算数-->移位-->关系-->逻辑-->(条件)-->赋值-->位运算-->逗号

结合性:单目、赋值、条件从右到左,其余由左到右

你可能感兴趣的:(C,操作符)