• 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);      

      }

      

  • 相关阅读:
    Win7远程连接凭据不工作的诡异问题解决
    pip介绍与使用
    Java Web整合开发(35) -- JPA规范
    爬虫
    零基础自学用Python 3开发网络爬虫
    learn资料
    Linux定时任务Crontab命令详解 转
    VirtualBox Host-only Adapter,Failed to create the host-only adapter 转
    Nginx报 No input file specified. 的问题解决之路 转
    ci上传图片
  • 原文地址:https://www.cnblogs.com/huanchao/p/3468535.html
Copyright © 2020-2023  润新知