C语言入门零基础:6、运算符

一、运算符分类:

        1、赋值运算符 : = 

        2、算术运算符: + - * / %(取余 取模)

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

        4、逻辑运算符: &&  || !

        5、其他运算符: ++ -- ?:   复合   +=  -= 

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

二、赋值运算符 

        格式: 变量名(内存空间) =  表达式(可以是常量,也可以是变量,也可以是一个式子)

        注意:原则上来说赋值运算符左右两侧 类型要一致,如果不一样会发生自动转换,如果转不了会报警告和报错。

        如果需要转换类型,可以使用强转。

        强转格式: (类型)变量名;

例:

        int a=10;

        char* b = (char*)a;        //将a的值转成char*类型传给b空间

三、算术运算符

        1、/(除):
                如果两边都是整数结果是整数
                如果有一个数小数结果就是小数
        例:
                10 / 3 == 3        
                10.0 / 3 == 3.333
        
        x,y是double类型,x=1,y=x+3/2=2.0.
        
        2、 %(取余数):
        
        注意:两边必须都要是整数

        m % n  的最大值为  n - 1,最小值为0。

        用法:1、%可以用于整除问题。

                   2、%可以用于数据分离。

十进制数据的分离:
                3456   分离出它的个位 十位  百位  千位
                
                思路1:从原数据中将想要获取的数字放在最高位
                    千位: 3456 / 1000 % 10  == 3
                    百位: 3456 % 1000  / 100 == 4
                    十位:3456 % 100 / 10 == 5
                    个位:3456 % 10 == 6
                    
                思路2:从原数据中将想要获取的数字放在个位上
                    个位:3456 % 10
                    十位:3456 / 10 % 10 == 5
                    百位:3456 / 100 %10== 4
                    千位:3456 / 1000 % 10 == 3

四、关系运算符

        在C语言中分为关系成立或者不成立,成立就为真,输出值为1    不成立那就是假 ,输出值为 0
    
        3 > 5 不成立 ,表达式的结果是0
        例:

        int res = 3 > 5;  // res -- 0

        int c = 5;

        c == 5 结果是1

        c = 10;  // 赋值

        整除问题:
                 m能被n整除表达式:     m % n == 0
                 m不能被n整除表达式: m % n != 0

五、逻辑运算符

        1、&&: 逻辑与
                格式: 表达式1  &&  表达式2
                规则:全真为真,有假则假
        
                表达式1    表达式2      表达式1  &&  表达式2
                  真             真                            真
                  真             假                            假
                  假        ---------                          假

注意:当表达式1为假时,不判断表达式2的真假,直接输出0

        2、||:逻辑或
                格式:表达式1 || 表达式2 
                规则:有真则真,全假为假
        
                表达式1  表达式2        表达式1 || 表达式2 
                   真          -------                       真
                   假           真                           真
                   假           假                           假

注意:当表达式1为真时,不判断表达式2的真假,直接输出1

        3、!: 逻辑非

                格式: !表达式

                规则:  真变假 假变真

                表达式            !表达式 
                   真                      假
                   假                      真

六、其他运算符

        1、++: 自增1
              -- : 自减1
        
                单独语句使用:++在前和++在后没有区别

例:
                        int a = 5;
                        int b = 5;
                        a++;   // a = a + 1;      // a = 6
                        ++b;   // b = b + 1;   // b = 6
                        printf("%d %d",a,b);  // 6,6            
            
                作为计算表达式的一部分:++在前先加后用,  ++ 在后先用后加

例:
                        int a = 5;
                        int b = 5;
                        int c = a++;  // 先用a当前的值作为(a++)表达式的结果,结果是5, c=5;
                        int d = ++b;  // b = b + 1 = 6    (++b)表达式的结果是6  d = 6;

                        printf("%d %d\r\n",c,d); // 5 6
                        printf("%d %d\r\n",a,b); // 6 6

        2、?:(三目运算符)

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

                规则:
                        先计算表达式1的结果,如果为真,三目运算符的结果就是 表达式2的结果
                                                              如果为假,三目运算符的结果就是 表达式3的结果

        3、复合运算符:

                         格式:
                                算术+赋值
                                位运算+赋值

                        +=     -=    *=    /=    %= 
                        &=    |=    ^=    <<=    >>=

应用:

                        int  a = 3;
        
                        a += 2;                  // a = a + 2;
        
                        如果实现一个变量自增1操作:a = a + 1;   a++;   ++a;   a+=1;    

        4、逗号运算符:

             逗号运算符的规则:从左往右计算,最有一个表达式的结果作为,运算符的结果。

七、位运算符

        1、&:按位与
                格式:数据1 & 数据2
                规则:全1为1,有0则0

        2、|:按位或
                格式: 数据1 | 数据2
                规则:有1则1,全0为0

        3、<<:按位左移
        
                格式: 数据 << 移动的位数
                规则:
                         数据整体左移,低位补0,高位溢出舍弃

        4、>>:按位右移
        
                格式: 数据 << 移动的位数
                规则:
                         数据整体右移,高位补符号位的那个值,低位溢出舍弃

        5、~:按位取反:
        
                格式: ~数据
                规则: 所有位,0变1,1变0

八、运算符的优先级(重要)

        如图,优先级标号越小该符号优先级越高

             

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值