C语言学习第二天笔记

 一、运算符

        1.算数运算符

                +  -  * / %

        2.自增自减运算符

                ++ 变量中的值+1        --变量中的值-1

                ++和--既可以放在变量的前面,也可以放在变量的后面

                ++和--放在变量的前边或者后边,单独写一行结果是一样的

                

int a = 10;
//先用后加 先将a的值赋给b然后a在自增
int b = a++
//b = 10

int a = 10;
//先加后用 先将a的值自增,在赋值给b
int b = ++a;
// b = 11

        3.windows运行顺序

                前缀优先于后缀,前缀统一自增/自减,然后运算完在把结果拿过来用

                

int i = 10;
++i + ++i; // 12 + 12 = 24
// 第一个i先加1 然后 后面的++i 再加1 10+1+1=12

             后缀统一先用,当整个表达式中变量用完了,在进行自增

int i = 10;
i++ + i++; // 10 + 10 = 20
// 先用i的值运算,运算完了在自增   10+1+1 = 12

                例题

int i = 10;
int j = 5;
int k = i++ + ++i - --j - i--
/*
    先算前缀++和--
    ++i = 11
    --j = 4
    再用运算完的值算表达式
    11 + 11 - 4 - 11 = 7
    运算完表达式在运算后缀++和--
    i++ = 12 i--=11
    运算完之后i=11
*/

        4.mac/linux运行顺序

                前缀和后缀的优先级是一样的

                从左到右依次计算

                每一个前缀和后缀都是一个独立的个体

                

int i = 10;
int j = 5;
int k = i++ + ++i - --j - i--
/*
        10 + 12 - 4 -12 = 6
    i++ 先用后加 10+1=11
    ++i 先加再用 11+1=12
    --j 先减在用 5-1=4
    i-- 先用再减,运算完表达式的时候 i=11
*/

        5.赋值运算符

                = += -= *= /= %=

                = 直接赋值

                += 加后赋值

                -= 减后赋值

                *= 乘后赋值

                /= 除后赋值

                %= 取余赋值

        6.关系运算符

                == != > >= < <=

        7.逻辑运算符

                !   &&  ||

                &&与(而且)  两边都为真,结果才为真

                || 或(或者) 两边都为假,结果才是假

                &&和||都具有短路效果,当左边的表达式能确定整个表达式的结果了,右边不参与运算直接跳过

        8.三元运算符 

                格式:关系表达式 ? 表达式1 : 表达式2;

                执行流程 关系表达式为真,执行表达式1  为假  执行表达式2 

        9.逗号运算符(分隔符) 

                规则:

                        1.从左到右

                        2.最后一个子表达式的结果,是整个表达式的结果

                        3,优先级最低(永远是最后执行)

        10.运算符的优先级

                小括号优先于所有

                一元>二元>三元

                && > || > 赋值运算符

        11.三元运算符嵌套解题关键

                ps:师承黑马程序员阿玮老师(doge)

                从左边的第一个问号开始往后找冒号,如果过程中遇到了其他问号,那么找冒号的数量加1,冒号前面所有代码是表达式1,后面是表达式2

二、类型转换

                计算时,数据类型不一样不能直接运算,需要转成一样的,才能运算

                1.隐式转换

                        把一个取值范围小的,转成取值范围大的

                        规则1:取值范围小的,和取值范围大的计算,小的会自动提升为大的,再进行运算

                        规则2:short  char类型的数据在运算的时候,先提升为int,再进行运算

                2.强制转换

                        如果把取值范围大的,赋值给取值范围小的,就需要进行强制转换

                        格式:目标数据类型 变量名=(目标数据类型)被强制转换的数据;

                        取值范围:char<short<int<long<long long<float<double

                        什么时候转换:

                                大的赋值给小的时候,需要强制转换

                        格式:

                                想转什么类型,就在前面的小括号中写什么类型即可

                        强制转换的弊端:

                                有可能导致数据错误

  • 20
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值