C语言学习笔记四、运算符,表达式,控制流语句

四、运算符,表达式,控制流语句

1.运算符

分类:

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

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

逻辑运算符:&& || !

位运算符: & | ~ ^ << >>

赋值运算符: =

顺序运算符: ,

三目运算符: a>b?a:b;

复合运算符:+= -= *= /= %= &= |= ~= <<= >>=

①. 算术运算符:

1)+ :   int a; a=a+10;  
​
2)- :   int a; a=a-10;
​
3)* :   int a; a=a*10;
​
4)/ :   int a=10; int b=a/3; b=3;  //'/'功能为取整;
​
5)% :   int a=10; int b=a%3; b=1;  //'/'功能为取余数;
​
6)++ :  int a=10; int b=a++; b=10,a=11  //'++'自增表示自身+1;
         int a=10; int b=++a; b=11,a=11 
​
7)-- :  int a=10; int b=a; b=10,a=9  //'--'自减表示自身-1;
         int a=10; int b=--a; b=9,a=9 
         
注意:(1)自加运算符写在变量后面,先赋值,再自加;
     (2)自加运算符写在变量前面,先自加,再赋值;
     (3)常量不可自加(常量不可被赋值) !!! 如:10++;--》这是错误的用法。

②. 关系运算符

1) > :   int a=10,b=9;  则a>b为真。
2) < :   int a=10,b=9;  则b<a为真。
3) >=:   int a=10,b=10;  则a>=b为真
4) <=:   int a=10,b=10;  则a<=b为真
5) ==:   int a=10,b=10;  则a==b为真  //'=='判断两百年是否相等,不要和'='混淆;
6) !=:   int a=10,b=9;   则b!=a为真。 // '!='判断两边是否不相等。

③. 逻辑运算符

&& : 逻辑与,同时满足两条表达式才为真!
            例如:想要判断一个数是否在5~10之间
            int a; if(5<=a<=10) printf("...");      //不能这么写,这是错的!!!
            int a; if(a>=5 && a<=10) printf("...");  //正确写法!!!
            
|| : 逻辑或,只要有一条表达式为真就是真,只要有一个表达式为真,就不会继续对后面的表达式进行                   判断!
            例如:
            int a=4; if(a<=5 || a>=10) printf("..."); //4<=5为真,不会继续进行                               a>=10的判断语句。
​
! : 取非--》真假互换
            例如:
            int a=4; if(a<5)为真; if!(a<5)为假。

④. 位运算符(运算时要将数据转化成二进制)

unsigned char a =0x3c; -->0011 1100
unsigned char b =0xd5; -->1101 0101
​
1) &:位与--》两个为真才为真
            a&b-->       0011 1100
                       & 1101 0101  ==0001 0100;
​
2) |:位或--》一个为真就为真
            a&b-->       0011 1100
                       | 1101 0101  ==1111 1101;
                       
3) ~:取反--》 0变1,1变0
            ~a-->       ~0011 1100  ==1100 0011;
​
4) ^:异或--》相同为0,不同为1
            a^b-->       0011 1100
                       ^ 1101 0101  ==1110 1001;
​
5)<<:左移--》把数据整体左移,高位溢出舍去,低位补0
            a<<4  -->  0011 1100<<4 == 1100 0000; 
​
6)>>:右移--》把数据整体右移,低位溢出舍去,高位补0
            a>>4  -->  0011 1100>>4 == 0000 0011; 

⑤. 赋值运算符

=:  int a=10; --》把10转化为二进制存储到a这块内存中。

⑥. 三目运算符

原型:a>b?a:b
                int a=10,b=20,c         //功能是对a,b进行比较,如果a>b,
                c=a>b?a:b               //输出a,否则输出b。
                

⑦. 复合运算符:+= -= *= /= %= &= |= ~= <<= >>=

例如: int a=100;
      a+=5;      --》a=a+5;  //直接从a这块内存块中进行运算,效率更高;
      a==105

2.表达式

int a;

a>10, a<10, a==10, a !=10;

1, 2,;

if(a>10){};

if(1*10){};

a+2, a=100...等都是表达式。

表达式只有两种值,真和假,非0则为真!!!

3.控制流语句

①. 概念:C语言里面实现循环逻辑控制的语句

②. 分类:

1)循环语句: for、while、do-while
​
2)分支语句: if-else if-else 、switch
​
3)跳转语句: goto 标签

③. 循环语句

1)while:
模型:            while(表达式)  --》当表达式为真时,就会执行括号内的代码块。
              {                 //注意while(表达式)后面不要加分号‘;’
                代码块;
              }
              
2)do-while:
模型:            do
              {               --》先执行一次循环,再判断表达式,
                代码块;           如果表达式为真,会继续执行循环。
              }while(表达式);  --》这里的分号必须要加!!!
              
3)for:
模型:            for(初始化代码块;表达式;更新代码块)
              {
                      代码块;
              }
注意:    初始化代码块在整个for循环里面执行一次;
      表达式每次执行循环之前都会判断一次表达式,表达式为真才会执行一次循环;
       更新代码块是在每次循环执行结束后,都会执行一次。
       
4)死循环:一直执行,不会结束。
例如:  while(1)            或者    for(;;)
       {                           {
          ...;                          ...;
       }                           }

5)return、break、continue的作用
return:结束当前的函数,返回一个对应类型的返回值; 如果在主函数里面,表示结束主函数也就会结束整个程序的运行。
break:跳出离他最近的一个循环,可以跳出switch语句。
continue:结束此次循环,继续执行下一次循环。

④. 分支语句

1) if---else if---else  
        if(表达式1)       //当表达式1为真时,会执行代码块1
        {
            //代码块1
        }
        else if(表达式2)  //当表达式1为假时,才会判断表达式2,如果表达式2为真时,会执行                           代码块2
        {
            //代码块2
        }
        else            //当前面所有的表达式为假,才会执行代码块3
        {
            //代码块3
        }
​
2) switch
    switch(n)                   //n 只能写整型、字符类型、枚举(绝对不能写浮点型)
    {
        case 1:
            //代码块1
            break;
            
        case 2:
            //代码块2
            break;
            
        case 3:·
            //代码块3
            break;
            
        default:
            //代码块5
            break;
    }

⑤. 跳转语句

goto  标签:  直接跳转到该标签处
例如:
    int i=1;    
    flag:
        printf("%d\n", i);
        i++;
    
        if(i == 10)
            return 0;
    goto flag;
​
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值