【C Primer Plus第六版 学习笔记】第八章 字符输入/输出和输入验证 第九章 函数

有基础,进阶用,个人查漏补缺

第八章 字符输入/输出和输入验证

  1. 缓冲输入和无缓冲输入

    1. 缓冲输入:在输入时,直到用户按下enter键之前不会打印刚输入的字符。
      1. 用户输入的字符被收集并储存在一个被称为缓冲区的临时存储区,按下enter键后程序才可以使用用户输入的字符
      2. 缓冲分为两类:完全缓冲I/O和行缓冲I/O。
        1. 完全缓冲I/O指的是当缓冲区被填满时才刷新缓冲区,内容才被发送到目的地,通常出现在文件输入中。缓冲区大小取决于系统,常见是512字节和4096字节。
        2. 行缓冲I/O指的是在出现换行符时刷新缓冲区,键盘输入通常是行缓冲输入,所以在按下enter键后才刷新缓冲区。
        3. 目前的C标准都规定输入是缓冲的
    2. 无缓冲输入:用户输入字符后立刻打印该字符,也叫回显输入
  2. 文件结尾

    1. C语言把输入输出设备视为存储设备上的普通文件,即可以把键盘输入看作文件,使用文件结尾检测器结束键盘输入

    2. 操作系统要以某种方式判断文件的开始和结束,如在文件末尾放一个特殊字符标记文件结尾,或者储存文件大小的信息。

    3. 无论使用哪种方法,C语言中,用getchar()读取文件或者使用scanf(),检测到文件结尾时将返回一个特殊的值,即EOF(end of file)。通常EOF定义在stdio.h文件中。

      #define EOF (-1)//0~127的值对应标准字符集,-1则可以避免对应任何字符
      
    4. 检测是否已经输入结束

      while((ch = getchar()) != EOF)
      
  3. 重定向搞不懂,笔记待定

  4. scanf与getchar的用法和常见错误详解——C语言中scanf与getchar的用法和常见错误详解

第九章 函数

  1. 声明函数可以在main()之前,也可以在main()里面,只要在调用函数前声明即可
  2. 递归方案更简洁,但是效率没有循环高
  3. 函数中的return只能把被调函数中的一个值传入主调函数
  4. 指针是一个值为内存地址的变量(或数据对象),即指针变量的值是地址
    1. ptr=&pooh;//把pooh的地址赋给ptr,或ptr指向pooh
  5. 解引用运算符/间接运算符 * :找出在某地址的中的值
    1. ptr = &bah;和val = *ptr;相当于val = bah;
  6. 指针声明:int * n;//在中间加个*,其中*和变量名中的空格可有可无。该变量叫做“指向int类型的指针”,n的值是一个地址,地址都由一个无符号整数表示,但是指针不是整数类型。

你可能感兴趣的:(C语言,c语言,学习,笔记)