运算符

来源:互联网 发布:windows跳板机搭建 编辑:程序博客网 时间:2024/05/29 11:11

C 语言中的输入与输出

        stdio       标准输入和输出

        C 语言是没有定义如何进行输入和输出操作

        而是使用库函数调用系统底层的输出与输入驱动程序来完成

        

        printf

        scanf

        

        Mac OS X 系统底层提供了输入个输出的功能

        printf scanf 去调用了系统底层的这些函数,才可以完成输入和输出

     //------------------------$------------------------------------

        scanf 的执行流程

        

        首先系统会提供一个缓存(可以存储用户输入的内容的一段内存)

        scnaf 在执行的时候,会首先到缓存中进行扫描

        将取得的字符与格式化字符串进行比对,如果比对不成功,那么不读取任何字符函数结束

        如果比对成功,那么读取匹配到的数据,然后结束,并将匹配到的数据转换成

        必要的格式,赋值给传入的变量


// 分类:

    // 功能:

    //    基础运算符, 数学运算符,关系运算符, 逻辑运算符,位运算符, 逗号运算符等

    // 操作数:

    //     单目运算符(一元运算符)

    //     双目运算符(二元运算符)

    //     三目运算符(三元运算符)

    

    // 初等单双目

    // 关系逻辑忙

    // 条件赋逗号

    // 熟记心不慌


----------------------------------------------------------------------------------------------------


        八个二进制位                 八个2相乘   2^8   256

     

     

        所谓的隐式类型转换,是指小的数据类型与大的数据类型进行运算的时候,会自动的转换

        成大的数据类型,不会有数据精度的丢失

        1 -> 1.0 + 2.0

     

        大的范围的数据如果转换成小的数据(把一个水盆中的水倒入杯子中?)

        所以不会发生自动的隐式类型转换,需要程序员手动的处理

            (类型)数据

     

        强制类型转换,或显式类型转换

----------------------------------------------------------------------------------------------------


        判断闰年(如果年份可以被400正处,或者年份可以被4整除,但是不能被100整除)

     

        如果年份可以被400正处 ||年份可以被4整除,但是不能被100整除

        year % 400 == 0 || 年份可以被4整除 &&不能被100整除

        @         year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)

     

        year % 400 == 0 || year % 4 == 0 && year % 100 != 0

     ----------------------------------------------------------------------------------------------------

逻辑中断,逻辑短路

// int isTrue = (-1 > 0) && (num = 20);

    

    // int isTrue = (-1 < 0) || (num = 20);

    

----------------------------------------------------------------------------------------------------


 条件运算符

        语法:

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

        如果表达式1的值为真,那么整个表达式的值与表达式2的值一样

        如果表达式1的值为假,那么整个表达式的值域表达式3的值一样

     

 result = num1 >= num2 ? num1 : num2;

//    

//    result = result >= num3 ? result : num3;

    

    

//    result =  (num1 >= num2 ? num1 : num2) >= num3 ? ( num1 >= num2 ? num1 : num2) : num3;

    

    //原则:尽量要代码易于读写,就算损失"一点"性能

//------------------------$------------------------------------


        ++  自增运算符

        --  自减运算符

     

        用法:

        1)前缀用法

            int num = 10;

            ++num;

            --num;

        2)后缀用法

            int num = 10;

            num++;

            num--;

     

        意义:

            num++ ++num

            等价与

            num += 1

            

            num-- --num

            num -= 1

自增自减在复合表达式中的使用

 //------------------------$------------------------------------

    // 在有++--的运算符的表达式中,

    //    在变量的上方写两个数字,用逗号隔开,表示它的表达式的值和变量的值

    //    使用的时候,使用前面的表达式的值

   //

   int num = 10;

    

    // int res = num+++num+++num++;

    

    //        10,11   11,12   12,13

    // res = (num++)+(num++)+(num++);

    // 10 + 11 + 12

    

    

    //            11,11   12,12   13,13

    // int res = (++num)+(++num)+(++num);

    

// 实际开发中,禁$止将多个自增自减放到一起运算,禁止将自增自减作为函数参数...

    

----------------------------------------------------------------------------------------------------

        逗号运算符$

            ,

     

        语法:

            (表达式1,表达式2,表达式3, ..., 表达式N)

        功能与值

            都号表达式从左往右运行里面表达式,但是值为最后一个表达式的值

     

        逗号表达式可以在正常运行过程中插入附带的运行内容



0 0
原创粉丝点击