• C程序设计语言(K&R)笔记


    1.表达式中float类型的操作数不会自动转换为double类型。一般来说,数学函数(如math.h)使用双精度类型的变量。使用float类型主要是为了在使用较大数组时节省存储空间,有时也为了节省机器执行时间(双精度算数元算特别费时)。
    2.scanf函数调用时,字符串类型不需要写‘&’,因为其本身即为地址。
    3.EOF可能被定义为不同的值,使用EOF等标准符号可以增强程序的可移植性,常见值有-1。
    4.根据某种特定的状态做不同的行为,可以用define定义状态量,然后定义int state。如:

    #define IN 0
    #define OUT 1
    
    
    ...
    if(state == IN)
        ...
    else   //OUT
        ...


    5. ~(~0<<n)  得到最右边n位为1,其他位是0.
    6.条件表达式
     每10行一个换行符:

    for(i=0;i<n,i++)  
        printf("%6d%c",a[i],(i%10==9||i==n-1)? '
    ':' ');


    是否复数的s

    printf("You have %d item%s.
    ",n,n==1?"":"s");


    7.在switch语句中,case的作用只是一个标号。
    8.break只能跳出其所在的一级到上一级,而不是所有层次。
    9.  getch和ungetch    超前读并放回一个字符

    #define BUFSIZE 100
    
    
    char buf[BUFSIZE];//for ungetch to buffer
    int bufp=0;//the next spare index of buf
    
    
    int getch(void)
    {
        return (bufp>0) ? buf[--bufp] : getchar();
    }
    
    
    void ungetch(char c)
    {
        if(bufp >= BUFSIZE-1)
            printf("ungetch: too many characters
    ");
        else
            buf[bufp++]=c;
    }



    10. 一个外部变量只能在某个文件中定义一次,而其他文件可以通过extern声明来访问他。外部变量的定义必须指定数组的长度,但extern声明则不一定要指定数组的长度。外部变量的初始化只能出现在其定义中。
    11.在函数中,可以以程序块结构的形式定义变量,例如for语句的花括号。
    12.在不进行显式初始化的情况下,外部变量和静态变量都将被初始化为0,而自动变量和寄存器变量的初值则没有定义。
    对于外部变量和静态变量来说,初始化表达式必须是常量表达式,且只初始化一次(在概念上讲是在程序开始执行前进行初始化)。
    对于自动变量和寄存器变量,则在每次进入函数或程序块时都将被初始化,可以不是常量表达式。

    数组的初始化,如果初始化表达式的个数比数组元素少,则对外部变量、静态变量和自动变量来说,未被初始化的元素将被初始化为0。若初始化表达式的个数比数组元素多,则是错误的。

    13.将一个数作为字符串打印

    /*print decimal as string*/
    void printd(int n)
    {
        if(n<0){
            putchar('-');
            n=-n;
        }
        if(n/10)
            printd(n/10);
        putchar(n%10+'0');
    }




  • 相关阅读:
    VUE vue和element框架搭配实现导航跳转,底部导航跳转页面
    【HDFS篇14】HA高可用 --- Federation架构设
    【HDFS篇13】HA高可用 --- YARN-HA集群配置
    【HDFS篇12】HA高可用 --- HDFS-HA集群配置
    【HDFS篇11】HA高可用
    【HDFS篇10】DataNode相关概念
    【HDFS篇09】集群安全模式
    【HDFS篇08】NameNode故障处理
    【HDFS篇07】NameNode和SecondearyNameNode
    【HDFS篇06】HDFS数据读写流程
  • 原文地址:https://www.cnblogs.com/suncoolcat/p/3306324.html
Copyright © 2020-2023  润新知