• stdio是C编译器软件包的标准部分,它提供键盘输入和屏幕输出的支持
  • 指令和头文件

    • #include <stdio.h> ,相当于把stdio.h文件中的所有内容都输入该行所在的位置。这是一种复制-粘贴操作。
    • #include 是一条预处理指令(preprocessor directive)。通常C编译器再编译前会对源代码做一些准备工作,即预处理(preprocessing)。#符号表明,c预处理器在编译器之前接手这条指令
    • 头文件:C顶部的信息集合,包含了编译器创建最终可执行程序要用到的信息。头文件帮助编译器把程序正确地组合在一起
      头文件可以定义一些常量或者指明函数名,帮助编译器把程序正确的结合在一起。
  • main()函数
    C程序包含一个或多个函数,它们是C程序的基本模块

    • C程序从一定从main()函数开始执行
    • 圆括号(),用于识别函数。里面可以包含一些传入函数的信息。圆括号内是void表示没有传递任何信息
    • int main()
      int 是 main(void) 函数的返回类型,这表明main()函数返回的值是整数。void表明main()函数不带任何参数。
  • 注释
    提高程序的可读性:多行/* */和C99新增单行//
  • 花括号、函数体和块

    • 所有的C函数都使用 花括号 { } 标记函数体的开始和结束
    • 花括号还可用于把函数中多余语句合并为一个单元或块
  • 声明(declaration

    • 声明把特定标识符与计算机内存中的特定位置联系起来。在C语言中,都必须先声明才能使用
    • int:声明一个整数变量,是C语言中的一个关键字(keyword),关键字是定义语言的单词,不能用作函数名和变量名。
    • 标识符:也就是一个变量的、函数或其他实体的名称
    • 命名:大小写字母、数字、下划线,第一个字符必须是字母或者下划线,不能是数字,区分大小写操作系统和C库经常使用以一个或两个下划线字符开始的标识符,因此最好避免在自己的程序中使用这种名称
    • C99之前的标准要求把声明都置于块的顶部,C99和C11遵循C++的惯例,可以把声明放在块中的任何位置,但是在使用前必须先声明,如果事先未声明变量,C程序将无法通过编译
  • 赋值

    • 赋值语句,在执行int num; 声明时,编译器在计算机内存中预留了空间,然后在执行赋值语句时,把值存储在之前预留的位置
  • printf()函数

    • 圆括号表明printf是一个函数名。圆括号中的内容是从main()函数传递给printf()函数的信息,该信息被称为参数,或者更确切的说,是函数的实际参数(actual argument),在C语言中实际参数是传递给函数的特定值,形式参数是函数中用于存示
    • 函数执行结束后,控制权被返回至主调函数(calling function)
    • 转义序列:用于代表难以输入的字符,每个转义字符都以反斜杠 \ 开始,如\n
    • %d相当于一个占位符,用于指明输出num的位置
  • return语句
    return 0;

    • int main()中的int表明main()函数应返回一个整数,C标准要求mian()这样做
    • 函数中的最后一条语句,有返回值的C函数要有return语句,如果遗忘main()函数中的return语句,程序在运行至 } 时会默认返回0,强烈建议养成保留return语句的习惯
  • 程序由一个或多个函数组成,必须要有main()函数。函数由函数头和函数体组成。函数头包括函数名、传入该函数的信息类型和函数的返回类型,C程序大部分语句都以分号 结尾
  • 提高程序可读性的技巧

    • 选择有意义的函数名
    • 写注释
    • 在函数中用空行分隔概念上的多个部分
    • 每条语句各占一行
  • 分号告诉编译器一条语句在哪里结束、下一条语句在哪里开始
  • 多条声明

    • 在声明中用逗号隔开两个变量
  • 多个函数,加入自己的函数

    • 第一次是函数原型(prototype),也被称函数声明(function declaration)告知编译器在程序中要使用该函数
    • 第二次是函数调用(function call),出现在main()中
    • 第三次是函数定义(function definition),函数定义是函数本身的源代码
    • 何时执行函数取决于它在main()中被调用的位置,而不是定于在文件中的位置
最后修改:2024 年 02 月 27 日