C语言学习 7 运算符,控制流语句

一、运算符

1)赋值运算符: =    +=     -=     *=     /=     %=     ++      --

        

        int a = 1,b =3; a = b++; //先输出b之后b再自己+1 a = 3 b:4

        a = ++b; //先b自己++在输出b a = 5

2)算术运算符: +    -    *     /     %

3)关系运算符:   >    <      !=     ==     >=     <=  

4)逻辑运算符: 与:&&       或:||      非:! 

注意 &&和||有短路操作的考虑 i

nt a =3; int b =4; if(a==3 || ++b == 3) { printf("---\n"); } b = 4

        短路操作:

                &&:第一个如果是假,第二个就不会执行

                ||:第一个如果是真,第二个就不会执行

        逻辑非: if(1)         if(!1)        if(!-1)         if(!0)

                        {             {               {                 {

                        }              }               }                  }

位运算符常用于:

                微型处理器开发 --- 寄存器 引脚赋值

                多媒体数据书传输显示--- 图片,音视频,

5)位运算符 : 对位数据进行操作的

                << 左移

                >> 右移

                | 位或

                & 位与

                ~ 取反

                ^ 异或(相同为0,不同为1) 

6)三目运算符: 条件判断?执行语句1 :执行语句2

#include <stdio.h> 

int main() 
{ 
    int a = 2; 
    int b = 3; 

    int c = a>b?a:b;     //求最大值 printf("%d\n",c); 

    a>=b?printf("a>=b"):printf("a<b"); 

    return 0;
} 

7)杂项运算符:

        sizeof:求类型大小

        &:取变量的首地址(取地址符)

        *(解引用)

优先级:

        ()和[] 

        杂项运算符,++,--,-,

        逻辑运算符,*,(右向左)

        算数运算 

         >>   << 

二、图表

优先级

运算符

名称或含义

使用形式

结合方向

说明

1

[]

数组下标

数组名[常量表达式]

左到右

-----

()

圆括号

(表达式)/函数名(形参表)

-----

.

成员选择(对象)

对象.成员名

-----

->

成员选择(指针)

对象指针->成员名

-----

2

-

负号运算符

-表达式

右到左

单目运算符

(类型)

强制类型转换

(数据类型)表达式

-----

++

前置自增运算符

++变量名

单目运算符

++

后置自增运算符

变量名++

单目运算符

--

前置自减运算符

--变量名

单目运算符

--

后置自减运算符

变量名--

单目运算符

 [4]

 

*

取值运算符

*指针变量

单目运算符

&

取地址运算符

&变量名

单目运算符

!

逻辑非运算符

!表达式

单目运算符

~

按位取反运算符

~表达式

单目运算符

sizeof

长度运算符

sizeof(表达式)

-----

3

/

表达式/表达式

左到右

双目运算符

*

表达式*表达式

双目运算符

%

余数(取模)

整型表达式/整型表达式

双目运算符

4

+

表达式+表达式

左到右

双目运算符

-

表达式-表达式

双目运算符

5

左移

变量

左到右

双目运算符

>>

右移

变量>>表达式

双目运算符

6

>

大于

表达式>表达式

左到右

双目运算符

>=

大于等于

表达式>=表达式

双目运算符

小于

表达式

双目运算符

小于等于

表达式

双目运算符

7

==

等于

表达式==表达式

左到右

双目运算符

!=

不等于

表达式!= 表达式

双目运算符

8

&

按位与

表达式&表达式

左到右

双目运算符

9

^

按位异或

表达式^表达式

左到右

双目运算符

10

|

按位或

表达式|表达式

左到右

双目运算符

11

&&

逻辑与

表达式&&表达式

左到右

双目运算符

11

||

逻辑或

表达式||表达式

左到右

双目运算符

13

?:

条件运算符

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

右到左

三目运算符

14

=

赋值运算符

变量=表达式

右到左

-----

/=

除后赋值

变量/=表达式

-----

*=

乘后赋值

变量*=表达式

-----

%=

取模后赋值

变量%=表达式

-----

+=

加后赋值

变量+=表达式

-----

-=

减后赋值

变量-=表达式

-----

左移后赋值

变量

-----

>>=

右移后赋值

变量>>=表达式

-----

&=

按位与后赋值

变量&=表达式

-----

^=

按位异或后赋值

变量^=表达式

-----

|=

按位或后赋值

变量|=表达式

-----

15

,

逗号运算符

表达式,表达式,…

左到右

从左向右顺序运算

说明:

        同一优先级的运算符,运算次序由结合方向所决定。

        简单记就是:! > 算术运算符 > 关系运算符 > && > || > 赋值运算符 

写一个新的函数判断一个年份是闰年还是平年,
是闰年返回true 平年返回flase 

#include <stdio.h> 
#include <stdbool.h> 

bool Check_Year() 
{ 
    int year; 

    printf("请输入年份:"); 
    scanf("%d",&year); 

    if((year % 400 == 0) || (year % 100 !=0 && year % 4 == 0)) 
    { 
        return true; 
    } 
    else 
    { 
        return false; 
    } 
} 

int main() 
{ 
    if(Check_Year() == true) 
    { 
        printf("该年份是闰年!\n"); 
    } 
    else 
    { 
    printf("该年份是平年!\n"); 
    } 

    return 0; 

}

三目运算符的基本写法

实现键盘输入两个数,求最大值 

#include<stdio.h>

int main() 
{ 
    int data_a; 
    int data_b; 

    printf("请输入两个数进行判断大小:"); 
    scanf("%d%d",&data_a,&data_b); 

    printf("你输入的最大值是:%d\n",data_a>data_b?data_a:data_b); 


    return 0; 
} 

---------------------------------------------------------------------------------
封装一个新的函数,实现键盘输入两个数,求最大值 

#include <stdio.h>

int Fun() 
{ 
    int data_a,data_b; 

    printf("请输入两个数:"); 
    scanf("%d%d",&data_a,&data_b);
 
    return data_a>data_b?data_a:data_b; //直接返回三目运算符的结果,其结果就是最大值 
} 

int main() 
{ 

    printf("最大值为%d\n:",Fun()); //直接输出函数的返回值 

    return 0; 
}

  • 14
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值