C语言笔记归纳1:C语言的常见概念

C 语言的常见概念

目录

C 语言的常见概念

一、C 语言是什么?—— 人与计算机的 “沟通桥梁”

二、C 语言的历史:从 “工具” 到 “行业标准”

三、编译器与 IDE:代码的 “转化器” 与 “工作台”

1. 编译型 vs 解释型语言(核心区别)

2. C 语言代码的 “变身” 流程(通俗版)

3. 新手必备工具推荐(避坑指南)

四、VS2022 实操:写第一行 C 代码(手把手教学)

前置准备:VS2022 安装小提示

第一步:创建新项目

第二步:创建 C 源文件

第三步:写代码(打印 “hehe” 和 “呵呵”)

第四步:编译 + 运行(关键步骤)

常见问题排查

五、main 函数:程序的 “唯一入口”

1. 结构拆解(一看就懂)

2. ⚠️ 新手必避的 4 个致命错误(高频踩坑)

3. main 函数的多种写法(规范 vs 不规范)

4. 注释快捷键(高效编程必备)

六、printf 与库函数:C 语言的 “现成工具包”

1. printf 的核心用法:格式化打印

2. 头文件:库函数的 “使用说明书”

3. 库函数查询资源(权威推荐)

七、关键字(保留字):C 语言的 “专用词汇”

1. 数据类型关键字(定义变量 / 数据类型)

2. 控制语句关键字(控制程序流程)

3. 存储类关键字(控制变量存储方式)

4. 其他常用关键字

八、字符与 ASCII 编码:字符的 “数字身份证”

1. 字符的表示方式

2. 必记 ASCII 值(新手背会这些,避免踩坑)

3. 字符运算的本质(基于 ASCII 值)

4. 实操:打印可打印 ASCII 字符(32-127)

九、字符串与 \0:字符串的 “结束密码”

1. \0 的作用:告诉编译器 “到此为止”

2. 不同初始化方式的差异(新手必看,易错点!)

3. 补充:strlen 与 sizeof 的区别(新手常混淆)

4. 字符串的直接打印技巧

十、转义字符:改变字符的 “原始含义”

常用转义字符(带示例,记牢这 11 个!)

补充:\ddd 与 \xdd 深度解释

实操练习:计算字符串长度(易错点)

十一、语句分类:C 语言的 “句子规则”

1. 空语句:“占位用的空句子”

2. 表达式语句:“带运算的句子”

3. 函数调用语句:“调用工具的句子”

4. 复合语句:“用大括号包裹的代码块”

5. 控制语句:“控制程序流程的句子”

十二、注释:代码的 “说明书”

1. 两种注释方式(各有场景)

(1)单行注释:// 注释内容

(2)多行注释:/* 注释内容 */

2. 注释的关键细节与规范

📝 总结


✨ 引言:

为什么 C 语言是编程入门的 “黄金选择”?

很多新手纠结第一门编程语言学什么 ——Python 简单但离底层远,Java 笨重且概念多,而 C 语言恰好平衡了 “易上手” 和 “实用性”:它是编程界的 “地基语言”,Python、Java 的底层都有 C 语言的影子;学会 C 语言,能搞懂计算机的核心逻辑,后续学任何语言都事半功倍!

一、C 语言是什么?—— 人与计算机的 “沟通桥梁”

💡 本质:

C 语言是一种通用高级计算机语言,就像人类和计算机的 “翻译官”—— 我们用 C 语言写逻辑(比如 “打印文字”“计算 1+1”),编译器会把它翻译成计算机能懂的二进制指令,最终执行。

🌟 核心特点:

高效简洁(运行速度快,代码量少)、可移植性强(能在 Windows、Linux、Mac 上运行)、贴近硬件(能操作内存、寄存器,适合底层开发)。

🌍 应用场景:

不止是入门!操作系统(Unix、Linux)、嵌入式开发(单片机、智能硬件)、驱动程序、游戏引擎核心、工业控制等,都离不开 C 语言。

二、C 语言的历史:从 “工具” 到 “行业标准”

C 语言的诞生是一场 “为解决问题而生” 的迭代,用时间线梳理更清晰:

  1. 1967 年:BCPL 语言诞生(为系统编程设计,语法复杂);
  2. 1969 年:肯・汤普逊基于 BCPL 简化出 B 语言,用于编写 Unix 系统;
  3. 1972 年:丹尼斯・里奇在贝尔实验室优化 B 语言,补充数据类型、指针等特性,C 语言正式诞生
  4. 1973 年:Unix 系统用 C 语言重写(原用汇编),C 语言凭借 “高效 + 易维护” 一战成名;
  5. 1989 年:ANSI 制定首个 C 语言标准(C89/C90),后续更新 C99、C11、C17,统一语法规则,让不同编译器(如 MSVC、GCC)都能兼容。

简单说:C 语言不是 “凭空造的”,而是为了解决实际开发问题不断优化的结果,实用性拉满!

三、编译器与 IDE:代码的 “转化器” 与 “工作台”

想让计算机看懂 C 语言,必须搞懂两个核心工具 —— 编译器(负责 “翻译”)和 IDE(负责 “一站式编写”),新手不用深钻原理,记住 “怎么用” 就行!

1. 编译型 vs 解释型语言(核心区别)

类型代表语言工作方式优点缺点
编译型C/C++一次性编译成机器码,再运行运行速度快,可独立运行跨平台性稍弱(需重新编译)
解释型Python逐行翻译逐行执行,无需提前编译跨平台性好,上手快运行速度慢

2. C 语言代码的 “变身” 流程(通俗版)

我们写的xxx.c(源文件)是 “人类能懂的文字”,计算机只认二进制,中间要经历 4 步:

xxx.c(源文件)→ 预处理(处理#define、#include)→ 编译(转汇编语言)→ 汇编(转二进制目标文件)→ 链接(合并系统库)→ xxx.exe(可执行程序)

✅ 新手不用记步骤:IDE 会自动完成 “编译 + 链接 + 运行”,你只需要写代码!

3. 新手必备工具推荐(避坑指南)

  • 编译器:不用单独装!IDE 会自带:
    • MSVC(微软):适配 VS2022,Windows 平台首选;
    • GCC(GNU):跨平台、免费,适配 CodeBlocks;
    • Clang(苹果):适配 XCode,Mac 平台专属。
  • IDE(新手优先选这 3 个):
    • VS2022(Windows):功能强、调试方便、自带中文,新手友好度拉满(推荐!);
    • CodeBlocks(跨平台):轻量简洁,安装包小,适合电脑配置一般的用户;
    • XCode(Mac):苹果专属,无需额外配置,适配 macOS/iOS 开发。

⚠️ 避坑提醒:

别装老旧的 DevC++!语法支持不全,调试功能弱,容易出现 “代码没问题但编译报错” 的情况。

四、VS2022 实操:写第一行 C 代码(手把手教学)

新手直接用 VS2022,步骤超详细,跟着做就能成功!

前置准备:VS2022 安装小提示

  • 安装时勾选 “使用 C++ 的桌面开发”(默认会装 MSVC 编译器和必要组件);
  • 安装路径选无中文、无特殊字符的文件夹(比如D:\VS2022),避免后续报错。

第一步:创建新项目

  1. 打开 VS2022 → 点击 “创建新项目”;
  2. 搜索 “空项目”(C++ 类型,后续可写 C 代码)→ 点击 “下一步”;
  3. 项目名称填英文(如FirstCProgram),路径选无中文的文件夹 → 点击 “创建”;
  4. 打开 “视图”→ 勾选 “解决方案资源管理器”(后续管理文件要用)。

第二步:创建 C 源文件

  1. 右键 “源文件”→ 选择 “添加”→“新建项”;
  2. 点击 “显示所有模板”→ 选择 “C++ 文件 (.cpp)”→ 名称改成test.c(后缀必须是.c,告诉编译器按 C 语言语法编译)→ 点击 “添加”。

第三步:写代码(打印 “hehe” 和 “呵呵”)

#define _CRT_SECURE_NO_WARNINGS 1 // 屏蔽VS的安全警告(比如scanf函数的警告)
#include <stdio.h> // 包含printf函数的头文件(必须加,否则报错)

int main() // 程序的入口函数,所有代码从这里开始执行
{
    printf("hehe\n");   // 打印英文,\n是换行符(让后续内容换行显示)
    printf("呵呵\n");   // 打印中文(VS默认编码支持中文,放心用)
    return 0; // 程序正常结束的标志(返回0表示没问题)
}

💡 小技巧:按住 Ctrl 键,滑动鼠标滚轮可放大 / 缩小代码字体;代码写错时,VS 会用红色波浪线提示,鼠标悬停能看错误原因~

第四步:编译 + 运行(关键步骤)

  • 快捷键:Ctrl+F5(直接运行,控制台不会闪退,新手首选);
  • 若用F5(调试运行),控制台可能一闪而过:在return 0;前加getchar();,就能保持控制台打开;
  • 运行成功后,控制台会显示:
    hehe
    呵呵
    

🎉 恭喜!你已经写出了第一行 C 语言代码,正式踏入编程大门~

常见问题排查

  • 报错 “无法打开源文件 stdio.h”:安装 VS 时没勾选 “使用 C++ 的桌面开发”,重新运行安装程序补充组件;
  • 中文乱码:打开源文件→ 点击 “文件”→“高级保存选项”→ 编码选 “GB2312”→ 保存。

五、main 函数:程序的 “唯一入口”

任何 C 程序都必须有main函数 —— 它就像家里的大门,程序从main函数开始执行,到return 0;结束,少了它就无法运行!

1. 结构拆解(一看就懂)

int   main   (void)  // int:返回值类型(告诉系统程序执行结果是整数);main:函数名(固定,不能改);void:表示函数无参数
{
    // 代码区:要执行的逻辑(比如打印、计算、判断)
    return 0;        // 0表示程序正常结束,非0表示异常(比如1表示出错)
}

2. ⚠️ 新手必避的 4 个致命错误(高频踩坑)

  1. 拼写错误:把main写成mian(最容易犯!VS 会提示 “标识符未定义”);
  2. 遗漏括号:main后忘记加()(比如int main),编译器会认为是变量声明,直接报错;
  3. 中文符号:用了中文分号、中文括号()(编译器只认英文符号,报错 “语法错误”);
  4. 缺少分号:语句结束后没加;(比如printf("hehe")),编译器会把下一行代码当成同一语句,报错。

3. main 函数的多种写法(规范 vs 不规范)

// 1. 早期写法(不推荐,C标准未定义,部分编译器兼容)
void main()
{
    // 无返回值,执行完直接结束,移植性差
}

// 2. 不规范写法(非错误,但可读性差)
int main()
{
    // 缺少return 0; C99及以后标准会隐式返回0,但不建议依赖
}

// 3. 推荐写法(兼容所有C标准,新手优先用)
int main(void) // 明确声明无参数,最严谨
{
    return 0;
}

int main() // 省略void,日常开发常用,简洁高效
{
    return 0;
}

int main(int argc, char* argv[]) // 带命令行参数(进阶用,比如接收控制台输入的参数)
{
    return 0;
}

4. 注释快捷键(高效编程必备)

  • 单行注释:选中代码→ 按Ctrl+K+C(自动添加//);
  • 取消注释:选中代码→ 按Ctrl+K+U
  • 作用:注释后的代码不会执行,用来标注逻辑(比如// 打印中文),方便自己和别人看懂代码。

六、printf 与库函数:C 语言的 “现成工具包”

printf是 C 语言最常用的函数 —— 用于在控制台打印内容,而它属于 “库函数”,就是 C 语言标准提供的 “现成工具”,不用我们自己写实现,直接用就行!

1. printf 的核心用法:格式化打印

语法:printf("格式控制字符串", 要打印的内容);

常用占位符(记牢!日常开发 80% 场景够用):

占位符作用示例代码输出结果
%d打印整型(整数,正负都可)printf("%d", 100);100
%c打印单个字符printf("%c", 'a');a
%f打印浮点型(小数)printf("%f", 3.14f);3.140000
%s打印字符串printf("%s", "Hello");Hello
%.2f保留指定小数位数(这里是 2 位)printf("%.2f", 3.1415);3.14

示例代码(包含多种用法):

#include <stdio.h>
int main()
{
    printf("整数:%d\n", 100);        // 打印整数
    printf("字符:%c\n", 'w');        // 打印字符
    printf("保留2位小数:%.2f\n", 3.1415); // 打印小数(控制精度)
    printf("字符串:%s\n", "C语言入门"); // 打印字符串
    return 0;
}

2. 头文件:库函数的 “使用说明书”

使用库函数必须先包含对应的头文件(.h后缀)

头文件里声明了函数的用法(比如printf的参数、返回值),告诉编译器 “这个函数怎么用”。

❌ 错误示例:

如果没写#include <stdio.h>,直接用printf会编译报错(提示 “标识符 printf 未定义”);

✅ 正确逻辑:

#include <stdio.h> → 告诉编译器 “我要用 printf 函数,说明书在这里” → 编译器正常识别。

常见库函数与对应头文件:

  • printf/scanf(输入输出)→ stdio.h
  • strlen(计算字符串长度)→ string.h
  • abs(求绝对值)→ stdlib.h

3. 库函数查询资源(权威推荐)

  • 官网:cplusplus.com(英文,但详细,可查函数用法、示例);
  • 中文:C 语言中文网(新手友好,有详细教程和函数说明)。

七、关键字(保留字):C 语言的 “专用词汇”

关键字是 C 语言预先定义的 “专用单词”,有固定含义,不能用作变量名、函数名(会冲突)。下面按功能分类整理,新手先记常用的,不用死记硬背!

1. 数据类型关键字(定义变量 / 数据类型)

int(整型)、short(短整型)、long(长整型)、float(单精度浮点型)、double(双精度浮点型)、char(字符型)、_Bool(布尔型,值为 1 真 / 0 假)、void(无类型)、signed(有符号,可表示正负)、unsigned(无符号,只能表示非负)。

2. 控制语句关键字(控制程序流程)

  • 选择语句(判断):if(如果)、else(否则)、switch(多分支)、case(分支条件)、default(默认分支)、break(跳出分支);
  • 循环语句(重复):forwhiledo
  • 跳转语句(跳转):goto(无条件跳转,不推荐滥用)、return(函数返回)。

3. 存储类关键字(控制变量存储方式)

static(延长变量生命周期、限制作用域)、

extern(声明外部变量 / 函数,跨文件使用)、

register(建议编译器将变量存入 CPU 寄存器,提高访问速度)、

auto(自动类型,变量默认类型,可省略)、

volatile(提醒编译器 “变量可能被意外修改”,不要优化)。

4. 其他常用关键字

sizeof(计算数据类型 / 变量的内存大小)、

const(定义常量,值不能修改)、

typedef(给数据类型重命名,比如typedef int INT;)、

struct(定义结构体,自定义复合数据类型)、

enum(枚举,一组命名的常量)。

💡 新手小技巧:

关键字在 VS 中会高亮显示(蓝色),如果你的变量名被高亮,大概率是和关键字冲突了(比如int int;会直接报错),换个名字就行!

八、字符与 ASCII 编码:字符的 “数字身份证”

计算机只认二进制,那字符(比如 'a'、'1'、'\n')怎么存储?

答案是ASCII 编码—— 给每个字符分配唯一的十进制数字(0-127),相当于字符的 “身份证号”,计算机存储的其实是这个数字的二进制。

1. 字符的表示方式

单引号括起来(比如'a''5''\n'),和字符串(双引号)严格区分:

  • 字符:'a'(单个字符);
  • 字符串:"a"(包含 'a' 和隐藏的\0,后续会讲)。

2. 必记 ASCII 值(新手背会这些,避免踩坑)

  • 数字 0-9:48-57(比如'0'的 ASCII 值是 48,'9'是 57 → 所以'5' + 3 = '8');
  • 大写字母 A-Z:65-90('A'=65,'Z'=90);
  • 小写字母 a-z:97-122('a'=97,'z'=122);
  • 核心控制字符:\n(换行)=10,\t(制表符)=9,\0(字符串结束标志)=0;
  • 空格字符:32(可打印,按空格键产生)。

3. 字符运算的本质(基于 ASCII 值)

字符的运算其实是它们的 ASCII 值在运算,比如大小写转换的核心逻辑:

#include <stdio.h>
int main()
{
    printf("大写A转小写:%c\n", 'A' + 32); // 65+32=97 → 输出'a'
    printf("小写a转大写:%c\n", 'a' - 32); // 97-65=32 → 输出'A'
    printf("字符'5'转数字5:%d\n", '5' - 48); // 53-48=5 → 输出5
    return 0;
}

4. 实操:打印可打印 ASCII 字符(32-127)

想直观看到 ASCII 编码对应的字符?运行这段代码,控制台会列出所有可打印字符:

#include <stdio.h>
int main()
{
    int i = 0;
    for (i = 32; i <= 127; i++)
    {
        printf("%c ", i); // 按ASCII值打印对应字符
        if (i % 16 == 15) // 每16个字符换行,排版整齐
            printf("\n");
    }
    return 0;
}

九、字符串与 \0:字符串的 “结束密码”

字符串是 “一串字符”,用双引号括起来(比如"abc""hello world"),但它的核心秘密是 —— 末尾隐藏着一个\0字符,这是字符串的 “结束标志”!

1. \0 的作用:告诉编译器 “到此为止”

"abc"在内存中实际存储为:a → b → c → \0\0的 ASCII 值是 0,不显示,只负责 “终止”)。如果没有\0,编译器会一直向后读取内存中的随机数据,直到找到\0,导致打印乱码(比如 “abc 烫烫烫”)。

2. 不同初始化方式的差异(新手必看,易错点!)

#include <stdio.h>
#include <string.h> // 包含strlen函数(计算字符串长度)
int main()
{
    char arr1[] = "abc";    // 正确:编译器自动在末尾加\0 → 存储为'a','b','c','\0'
    char arr2[] = { 'a','b','c' }; // 易错:无\0 → 存储为'a','b','c'(不是完整字符串)
    char arr3[] = { 'a','b','c','\0' }; // 正确:手动加\0,与arr1等价

    printf("arr1:%s\n", arr1); // 输出abc(遇到\0停止)
    printf("arr2:%s\n", arr2); // 输出abc+乱码(无\0,读取随机内存)
    printf("arr3:%s\n", arr3); // 输出abc(正常终止)

    printf("arr1长度:%d\n", strlen(arr1)); // 3(strlen统计\0前的字符数)
    printf("arr2长度:%d\n", strlen(arr2)); // 随机值(无\0,无法确定长度)
    return 0;
}

3. 补充:strlen 与 sizeof 的区别(新手常混淆)

很多新手会把 “字符串长度” 和 “数组占用内存” 搞混,用表格对比更清晰:

函数 / 操作符功能示例(char arr[] = "abc"结果
strlen统计字符串长度(\0 前的字符数)strlen(arr)3
sizeof计算数组 / 变量占用的内存字节数sizeof(arr)4

4. 字符串的直接打印技巧

printf 打印字符串有两种方式,新手任选:

// 方式1:用%s占位符(推荐,适合变量)
char str[] = "C语言yyds";
printf("%s\n", str);

// 方式2:直接写双引号字符串(适合固定内容)
printf("C语言yyds\n");

十、转义字符:改变字符的 “原始含义”

转义字符以\开头,作用是 “改变后面字符的原始含义”—— 比如无法直接输入的换行、制表符,或者需要特殊表示的单引号、双引号(避免冲突)。

常用转义字符(带示例,记牢这 11 个!)

转义字符作用示例代码输出结果
\n换行符(光标移到下一行开头)printf("abc\ndef");abcdef
\t制表符(相当于 Tab 键,对齐用)printf("姓名\t年龄\t成绩");姓名 年龄 成绩
\'表示单引号(解决嵌套冲突)printf("他说:%c", '\'');他说:'
\"表示双引号(解决嵌套冲突)printf("书名:%s", "\"C语言入门\"");书名:"C 语言入门"
\\表示反斜杠(自身转义,文件路径常用)printf("路径:C:\\test\\hehe.c");路径:C:\test\hehe.c
\?防止连续问号被解析为 “三字母词”(旧编译器兼容)printf("Are you ok\?\?");Are you ok??
\a警报声(终端发声,无视觉输出)printf("\a");滴滴声(不同系统效果不同)
\b退格符(光标左移一位,覆盖后续字符)printf("abc\bd");abd(c 被覆盖)
\r回车符(光标移到当前行开头,不换行)printf("abc\r123");123c(123 覆盖 ab)
\ddd八进制转义(ddd=1-3 位八进制数)printf("%c", '\130');X(八进制 130 = 十进制 88)
\xdd十六进制转义(dd=1-2 位十六进制数)printf("%c", '\x30');0(十六进制 30 = 十进制 48)

补充:\ddd 与 \xdd 深度解释

  • \ddd:后面跟 1-3 位八进制数字(0-7),编译器会将其转为十进制,作为 ASCII 码值对应的字符;
  • 示例:\141(八进制 141 = 十进制 97)→ 'a'\0(八进制 0 = 十进制 0)→ 字符串结束标志;
  • \xdd:后面跟 2 位十六进制数字(0-9、a-f、A-F),转为十进制后作为 ASCII 码值;
  • 示例:\x61(十六进制 61 = 十进制 97)→ 'a'\x20(十六进制 20 = 十进制 32)→ 空格。

实操练习:计算字符串长度(易错点)

#include <stdio.h>
#include <string.h>
int main()
{
    // 分析:\t是1个转义字符,\\是1个转义字符,\113是1个转义字符(八进制113=75→'K')
    int len = strlen("c:\test\bit\113.c");
    printf("%d\n", len); // 输出12(拆解:c : \test \bit \113 . c → 1+1+4+3+1+1=12)
    return 0;
}

十一、语句分类:C 语言的 “句子规则”

C 语言的语句就像文章里的 “句子”,有固定格式和用途,按功能可分为 5 类,每类都有明确的使用场景:

1. 空语句:“占位用的空句子”

  • 定义:单独一个分号就是空语句,没有实际执行逻辑。
  • 用途:某个位置必须有语句,但暂时不需要做任何事时使用(比如循环中先占坑,后续补逻辑)。
  • 代码示例:
int main()
{
    ;// 空语句:这里需要语句结构,但无需执行操作
    for (int i = 0; i < 10; i++); // 循环体是空语句,仅让i自增10次
    return 0;
}

⚠️ 易错点:不要无意识写空语句!比如if(1);{printf("hehe");},分号会让 if 只控制空语句,大括号里的代码会无条件执行。

2. 表达式语句:“带运算的句子”

  • 定义:表达式后面加上分号,就构成表达式语句(最常用的语句类型)。
  • 核心:表达式是 “有计算结果的式子”(比如3+5a=10),加了分号就变成可执行的语句。
  • 代码示例:
int main()
{
    3 + 5; // 表达式语句,但计算结果没用(无实际意义)
    int a = 0; // 变量初始化语句(本质是赋值表达式+分号)
    int b = 20;
    b = a + 3; // 表达式语句:计算a+3,结果赋值给b
    return 0;
}

3. 函数调用语句:“调用工具的句子”

  • 定义:函数调用后面加上分号,用于执行函数的功能。
  • 常见场景:printf、scanf、自定义函数调用等。
  • 代码示例:
#include <stdio.h>
int main()
{
    printf("hehe\n"); // 函数调用语句:执行打印功能
    scanf("%d", &a); // 函数调用语句:执行读取输入功能
    return 0;
}

4. 复合语句:“用大括号包裹的代码块”

  • 定义:成对大括号{}包裹的一组语句,也叫 “代码块”,会被视为一个整体。
  • 用途:用于需要 “多条语句作为一个单元” 的场景(比如循环体、if 分支体)。
  • 代码示例:
int main()
{
    int i = 0;
    int arr[10] = {0};
    for (i = 0; i < 10; i++)
    {
        // 大括号内是复合语句(循环体),多条语句作为一个整体执行
        arr[i] = 10 - i;
        printf("%d\n", arr[i]);
    }
    return 0;
}

💡 小技巧:复合语句内可以定义局部变量,变量的作用域仅限于这个代码块(出了大括号就失效)。

5. 控制语句:“控制程序流程的句子”

  • 核心:C 语言是 “结构化编程语言”,支持 3 种核心结构(顺序、选择、循环),控制语句就是实现这 3 种结构的关键。
  • 分类(记牢!后续高频使用):
    • 条件判断语句(选择结构):if语句、switch语句;
    • 循环执行语句(循环结构):do-while语句、while语句、for语句;
    • 转向语句(跳转控制):break语句、goto语句、continue语句、return语句。

十二、注释:代码的 “说明书”

注释是对代码的解释和说明,编译时会被编译器忽略,不参与执行,目的是让自己或他人看懂代码。

1. 两种注释方式(各有场景)

(1)单行注释:// 注释内容
  • 用法:注释单行内容,从//开始到行尾都算注释。
  • 优势:简洁、支持 “多行单行注释”(本质是多个单行注释),日常开发首选。
  • 代码示例:
int main()
{
    int a = 10; // 单行注释:创建整型变量a,初始化值为10
    // int b = 20; // 注释掉这条语句,编译时不执行
    return 0;
}
(2)多行注释:/* 注释内容 */
  • 用法:注释多行内容,从/*开始,到*/结束,可跨行吗。
  • 注意:不支持嵌套注释(内部再写/*...*/会提前结束注释)。
  • 代码示例:
/*
  多行注释:
  这是一个测试程序
  功能:定义变量并赋值
*/
int main()
{
    int a = 10;
    /* int b = 20;
    printf("%d", b); */ // 正确:单行内的多行注释
    /* 注释1 /* 注释2 */ 错误:嵌套注释,注释2的*/会提前结束整个注释
    return 0;
}

2. 注释的关键细节与规范

  • 编译时,注释会被替换为一个空格,所以min/*注释*/Value会变成min Value(不会报错)。
  • 注释规范:
    • 关键逻辑、复杂算法必须加注释(比如 “冒泡排序:从小到大排序数组”);
    • 简单代码(如int a=10;)可适当省略注释,避免 “过度注释”;
    • 注释要和代码对齐,保持整洁(比如在代码右侧加注释,缩进一致)。

📝 总结

这篇博客涵盖了 C 语言入门的 13 个核心知识点:从语言本质、工具使用,到 main 函数、库函数、字符编码、转义字符、语句规则,每个知识点都配了实操代码和易错点避雷。

学习 C 语言的关键是 “多写、多练、多踩坑”—— 不要怕报错,每一次报错都是一次进步!如果这篇博客对你有帮助,欢迎点赞、收藏!! 😉

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值