• C语言学习笔记(二)


    C语言类型转换:

    1. example:     

        int a;

        a = 3.2 + 3 / 4.0;     //先转换成double,得0.75

                    //3.2 + 0.75 = 3.95

                    //因为a是整数,最后的结果决定于a的类型(即等号左边的类型),结果为3。

    2.隐式转换:

      a.运算转换——不同类型数据混合运算时;

      b.赋值转换——把一个值赋予类型不同的变量时;

      c.输出转换——输出时转换成指定的输出格式;

      d.函数调用——实参与形参类型不一致时转换。

      

        运算转换:

        (a)char, short   自动转换>int,

        (b)float            自动转换>double

      在参与数学运算时只有int和double两种类型。所有的数学函数名的返回值都是double类型。

    3.

      example:

        double x = 3.4;

        (int)x;

      首先在内存栈中分配八个字节作为x的空间;在常量区中也有八个字节存储3.4;再在临时空间中分配四个字节,将"3"存入这四个字节中。强制类型转换得到所需类型的中间变量,原变量值不变。

    4.       ++,--(后置):先使用后执行

      int a[10];

      int *p = a;

      m = *p++;   //==>m = *(p++);

     相当于m = *p;   p++;

       ++(后置)和*都处于同一个优先级,结合顺序是自右向左。

    5.在C语言中"="赋值是一个运算符,也是有运算结果的,其运算结果与其左值是一样的。

      example:

        b = a = 2; 先计算a = 2,再将a = 2的运算符结果赋给b。

      example:

        int a;

        a = 10;

           这里存在运算转换,因为10是一个short类型的常量,而赋给a后转换成int类型。

    6.",": 逗号运算符,它的值是最后一个表达式的值。

    7. int main(): 正常返回是"0",出错返回非零值

    8. I/O缓冲

      a.缓冲被写满

      b.文件被关闭时,缓冲——>磁盘

      c.flush()强制刷缓冲

      d.程序崩溃的时候,不会写到磁盘中去。

    9.用最少的空间交换两个数据

      int a,b;          int a,b,temp;

      a = a + b;         temp = a;  

      b = a - b;     <==  a = b;

      a = a - b;          b = temp;

     用最少的空间,最快的方式交换两个数

      int a,b;

      a = a ^ b;

      b = a ^ b;

      a = a ^ b;

     因为两个相同的数'^'为零,如 a^a^b = b;  ==> 0^b = b;

    10.

      int main()

      {

        int *p;                //这是不对的,p此时是一个空指针

        scanf("%d", p);      

      }

      

  • 相关阅读:
    JavaScript 操作 DOM 元素
    字节数
    如何判断校准曲线是否合格
    [WPF]MVVM模式下如何在后台cs中调用绑定命令
    逆对数antilog0.03376如何计算
    未能解析此远程名称:'nuget.org' 的解决方法
    【WPF】WPF ScorllView触摸滚动实现
    【VS2017】清除NuGet下载旧版本缓存
    【UWP】截图
    test
  • 原文地址:https://www.cnblogs.com/huanchao/p/3468535.html
Copyright © 2020-2023  润新知