一、C 语言基本结构

1. 程序的三大核心要素

  • 声明:告诉编译器函数或变量的存在(类型、名称),不分配内存。

示例:extern int funcA(void);(声明函数funcA)、extern int num;(声明变量num)。

    • 作用:确保编译器在遇到调用时能识别符号,避免语法错误。
    • 关键字extern:提示编译器在整个工程中查找符号的定义(初学者建议显式添加)。
  • 定义:具体实现函数或变量,分配内存。

示例:int num = 100;(变量定义)、int funcA(void) { ... }(函数定义)。

  • 调用:执行已定义的函数或使用已定义的变量。

流程:编译器先检查声明,再跳转到定义处执行。

2. 头文件(.h)

  • 作用:包含函数、变量的声明,供编译器识别(如stdio.h包含printf的声明)。
  • 包含方式
    • #include <stdio.h>:从系统环境目录查找头文件(系统库)。
    • #include "myheader.h":先从工程目录查找,再从系统目录查找(自定义头文件)。
  • 预处理#开头的语句为预处理指令,在程序运行前执行(如包含头文件)。

3. 主函数(main)

  • 特殊性:程序的唯一入口,一个工程中必须且只能有一个main函数。
  • 结构

int main(void) { ... }  // 不接收命令行参数

int main(int argc, char const *argv[]) { ... }  // 接收命令行参数(argc:参数个数;argv:参数列表)

  • 返回值:类型为int,表示程序执行状态(0 为正常,非 0 为异常),返回给上一级进程。

4. printf 函数(标准输出)

  • 功能:向终端输出指定格式的数据,原型为int printf(const char *format, ...)
  • 格式控制符(核心):

控制符

含义

示例

%d

十进制整数

printf("%d", 100);

%s

字符串

printf("%s", "abc");

%c

字符

printf("%c", 'A');

%f

浮点型

printf("%f", 3.14);

%p

地址 / 指针

printf("%p", &num);

%o

八进制整数

printf("%o", 10);

%x

十六进制整数

printf("%x", 16);

  • 输出缓冲区刷新条件
    1. 遇到换行符\n(推荐);
    2. 程序 / 函数结束;
    3. 调用fflush(stdout)强制刷新;
    4. 缓冲区满。

5. 转义字符

  • 基本转义字符(常用):
    • \n:换行;\t:水平制表符;\\:反斜杠;\":双引号;\r:回车(光标移至行首,不换行)。
  • 扩展转义字符
    • 颜色控制:\033[背景色;字体色m(如\033[40;32m表示黑底绿字,\033[0m关闭特效);
    • 光标控制:\033[x;yH定位光标、\033[2J清屏等。

一、基本转义字符

    \n - 换行符。将光标移动到下一行的开始位置。*****

    \t - 水平制表符。通常会将光标移动到下一个制表位。***

    \\ - 反斜杠。用来表示实际的反斜杠字符。*

    \' - 单引号。用来表示实际的单引号字符。*

    \" - 双引号。用来表示实际的双引号字符。*

    \? - 问号。虽然问号本身不需要转义,但在某些情况下为了防止与三字母序列混淆,可能会用到。

    \a - 警报声。发出警报声。

    \b - 退格。将光标向后移动一个字符的位置。

    \f - 换页。跳转到下一页的开始位置。

    \r - 回车。将光标移动到当前行的开始位置,但不换行。***

    \v - 垂直制表符。通常会将光标移动到下方的垂直制表位。

    \ooo - 其中ooo是1到3位的八进制数

    \xhh - 其中hh...是一个或多个十六进制数字。(\101 和 \x41 都代表大写字母 'A' 的ASCII码值65)

    

二、背景色、字体色显示转义字符

    a、格式:\033[40-47;30-37m

    b、说明:

        40/30:   黑色(背景色/字体色)

        41/31:   红色

        42/32:   绿色

        43/33:   黄色

        44/34:   蓝色

        45/35:   紫色

        46/36:   深绿色

        47/37:   白色

    c、使用:

        printf("\033[40;32m《学生信息管理系统》\n");

三、显示效果转义字符

    \033[0m           // 关闭特效

    \033[1m           // 高亮效果

    \033[4m           // 下划线效果

    \033[5m           // 闪烁效果(只有ubuntu18.04系统及以上才具备这个效果)

    \033[7m           // 反显(交换前景色和背景色)

    \033[8m           // 消隐(文本不可见)

四、光标设置

    \033[2J           // 清除屏幕

    \033[x;yH         // 定位光标(x:横轴坐标, y:纵轴坐标)

    \033[yA           // 上移光标(y是纵轴移动的位置)

    \033[yB           // 下移光标

    \033[xC           // 右移光标(x是横轴移动的位置)

    \033[xD           // 左移光标

    \033[H            // 复位光标

    \033[?25l         // 隐藏光标

    \033[?25h         // 显示光标

    \033[u            // 恢复光标位置

    \033[s            // 保存光标位置

    \033[K            // 清除从光标到行尾的内容

6. return 语句

  • 作用:结束当前函数并返回数据(若有)。
  • 主函数中return 0表示程序正常结束,非 0 表示异常(返回值供其他进程判断状态)。

二、man 帮助手册与在线文档

1. man 手册(权威离线文档)

  • 分册分类(共 9 册,核心为 1、2、3 册):

分册

内容

示例

1

可执行程序 / Shell 命令

man 1 ls(查ls命令)

2

系统调用(内核提供的函数)

man 2 open(查open系统调用)

3

库函数(第三方库函数)

man 3 printf(查printf函数)

  • 查询方法
    1. 查看条目所在分册:man -f 条目(如man -f printf);
    2. 指定分册查询:man 分册 条目(如man 3 printf)。
  • 安装:默认仅安装第 1 册,需手动安装其他分册:

sudo apt install manpages  # 基础手册

sudo apt install manpages-dev  # 开发相关手册

  • 函数查询要点:通过man 3 函数名可获取:
    • 函数作用(NAME);
    • 头文件(SYNOPSIS,如#include <string.h>);
    • 原型与参数(DESCRIPTION);
    • 返回值(RETURN VALUE)。

2. 在线文档

三、代码风格规范

1. 标识符命名规则

  • 允许包含字母、数字、下划线,必须以字母或下划线开头;
  • 不可与系统关键字重名(如intif);
  • 命名需 “顾名思义”(如student_name而非a1)。

2. 格式规范

  • 缩进:代码块({}内)必须缩进(通过Tab键控制);
  • 空格:标点符号后加空格(如int n = 10;而非int n=10;);
  • 空行:不同逻辑模块间加空行(如函数间、变量定义与逻辑代码间);
  • 排版技巧
    • 整体左移:选中代码 + Shift+Tab
    • 整体右移:选中代码 + Tab
    • 注释 / 取消注释:选中代码 + Ctrl+/
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐