c语言基础-表达式05

来源:互联网 发布:路由器上网数据获得 编辑:程序博客网 时间:2024/06/06 00:39

1.变量赋值

    1.1 自动类型转换

        当我们为变量赋值的时候,如果赋值的数据的类型 变量的类型不一致

        这个时候C系统会将赋值的数据的类型转换为 变量的类型然后再赋值.

        这样的情况叫做自动类型转换.

    1.2 常见类型赋值

        1.2.1   int赋值

                1).如果我们赋值的数据超出了int的范围.这个时候C系统会将数据转换为1个随机的int数据.

                2).如果我们赋值的数据超出了int的范围太多.这个时候自动类型转换无能为力. 编译器直接报语法错误.

                3).如果我们赋值的数据是1个实型的小数.这个时候C系统会直接截取整数部分.

       1.2.2 float 赋值

               1).如果我们赋值的数据是1double类型的小数,这个时候C系统会将这个double类型的小数转换为float

               2).如果我们赋值的数据是1个整数,那么就将这个整数转换为float小数直接加1.0就搞定了.

       1.2.3 double赋值

              当我们赋值的数据是1float类型的时候,这个时候C系统会将其转换为double占据8个字节.

       1.2.4 char类型

             char类型数据的赋值,就是把char对应的ASCII码赋值给变量。

 2.scanf函数

    可以在程序运行的时候.让用户输入数据.然后将用户输入的数据赋值给指定的变量

    scanf("格式控制符",变量地址列表);

    注意:

        2.1.用户输入数据和要求的数据类型要一致,这样才能正确的接收,如果输入不符,就可能接收失败,数据就会用默认值。

        2.2.用户在输入数据之前,输入空格 回车 tab键都会被忽略。

        2.3.当要求用户输入多个数据时,需要使用占位符,占位符的类型就是要输入数据的类型。后边对应的跟上相应数据类型的变量的地址。

           用户输入时,可以用回车或者空格来分隔多个数据。用户也可以指定分隔符,一旦指定来分隔符,空格和回车就无法使用了。

           scanf如果一次输入多个数据,只能是数字,如果有char混合输入就会出问题。

      2.4.scanf函数,用户输入完毕,并不是直接赋值给变量,都是先储存到缓冲区。如果用户输入之前,缓冲区有数据就不会让用户输入直到缓冲区没有数据。

         输入的空格 回车 tab都会被自动忽略。

      2.5.在输入字符之前,要把缓冲区中的数据全部清空。rewind(stdin);

3.交换两个变量的值

     3.1.两数相加再相减

         int a = 10, b = 20;

         a = a + b;

         b = a - b;

         a = a - b;

     3.2.异或交换两个变量的值  

         int num1 = 100;

         int num2 = 200;

         num1 = num1 ^ num2;

         num2 = num1 ^ num2;

         num1 = num1 ^ num2;

 4.逗号表达式

    用逗号将其他的表达式连起来.就叫做逗号表达式.

    从头到尾的去执行每1个子表达式.最后1个子表达式的结果就是整个逗号表达式的结果.

     前面的表达式只是想要让其执行.不关心结果.因为前面的表达式一旦执行就会影响最后1个表达式的结果.

    而我们关心的是 前面的变化完了以后最后1个表达式的结果是多少.




原创粉丝点击