• 0
  • 1
  • 0
  • C语言基础入门笔记——NO1

  • 孤寂Solitude
  • 851
  • 2026-04-30 00:59
  • 本文目标:用最通俗的方式讲清楚 C 程序的骨架、如何输出信息、如何创建和使用变量。学完你可以:独立写出一个能输出内容、能做简单计算的 C 程序。
    适合人群:完全零基础,或者学得迷迷糊糊的同学。  

    一、程序的基本结构 —— 就像人的身体骨架

    一个 C 程序,无论多么复杂,都有固定的“骨架”:

    #include    // 包含一个工具箱(标准输入输出库)
    
    int main() {         // 主函数 —— 程序的起点,只有一个!
        // 你的代码写在这里
        return 0;        // 告诉电脑:“我正常运行完了”
    }

    1.1 #include 是什么?

    • stdio.h 是一个“工具箱”,里面放着 printf(输出)、scanf(输入)等工具。
    • 你想用输出功能,就必须先把这个工具箱搬进来。

    1.2 main 函数 —— 程序的“唯一入口”

    • 为什么是唯一的? 就像你进一栋大楼只能有一个正门,程序开始执行也只能从 main 进去。你可以在楼里修很多房间(其他函数),但进楼只能走正门。
    • 名字不能改:你非要把正门改成“大门”,别人就找不到入口了。所以 main 必须一字不差地写。
    • int 和 return 0;:int 表示这个门最后会向外喊一个整数(运行结果)。return 0; 就是喊“0”,代表一切正常;如果喊 1 或 -1,代表出错了。
    ❌ 不要写 void main() —— 那是非标准写法,有些编译器能过,但到了考试或工作中可能报错。养成好习惯:int main(void) 或 int main()。

    二、输出函数 printf —— 让程序说话

    printf 的作用就是把括号里的内容显示在屏幕上。

    2.1 直接输出一段文字

    printf("你好,世界!");
    • 双引号 " " 里面的内容会原样输出。
    • 如果啥也不写:printf(""); 就输出空。

    2.2 输出变量里的数据 —— 需要“占位符”

    你想输出一个整数 100,可以:

    int age = 18;
    printf("我今年%d岁", age);   // 输出:我今年18岁

    这里的 %d 就是占位符,它说:“嘿,这里等一下要填一个整数”。后面的 age 就是真正要填进去的值。

    常用占位符一览表

    你要输出的数据占位符例子
    整数(int)%dprintf("分数:%d", 95);
    小数(float/double)%fprintf("π≈%f", 3.14159);
    小数(保留2位)%.2fprintf("价格:%.2f元", 9.9);
    单个字符%cprintf("等级:%c", 'A');
    字符串%sprintf("名字:%s", "小明");
    ⚠️ 占位符必须和后面变量的类型完全一致。你用 %d 去输出一个浮点数,电脑会“翻译错”,输出一堆乱码。

    2.3 转义字符 —— 调整输出格式

    • \n:换行。没有它,所有输出会挤在一行。
    • \t:一个Tab键的空格,用来上下对齐。
    • \\:输出一个反斜杠 \(因为反斜杠本身有特殊意义)。为什么反斜杠 \ 有特殊意义?在 C 语言中,反斜杠 \ 是一个 “转义字符”,它的作用是:告诉编译器,后面那个字符不要按普通意思理解,要改成另一个意思。
    • \":在字符串中输出双引号。
    printf("第1行\n第2行");   // 会分成两行显示
    printf("姓名\t年龄\n");    // 姓名和年龄之间空几格
    printf("他说:\"你好\"");  // 输出:他说:"你好"

    2.4 完整示例(规范写法)

    printf("我的高考总分为:%.1f\n", 668.0);      // 输出:668.0
    printf("小数:%.2f\n", 1.93);                // 输出:1.93
    printf("字符:%c\n", 'A');                   // 输出:A
    printf("字符串:%s\n", "hello word");
    printf("我学校的名字:%s\n", "山卡拉大学");
    
    // 多个占位符 —— 顺序必须一一对应
    printf("姓名:%s,性别:%s,年龄:%d岁,身高:%.2f米,体重:%d斤\n",
           "小怡怡", "女", 18, 1.83, 100);
    最佳实践:每个 printf 末尾习惯加上 \n,除非你故意不要换行。

    三、变量 —— 存放数据的“小盒子”

    3.1 什么是变量?

    你可以把一个变量想象成一个有名字的小盒子,盒子里面可以放一个数据(数字、字符等),而且这个数据可以改变(所以才叫“变”量)。

    3.2 定义变量的两种写法 —— 关键区分!

    写法一:定义的同时就放好数据(初始化)

    int age = 18;
    • 使用场景:你已经知道这个变量要存什么值,比如固定的年龄、初始分数等。
    • 优点:一步到位,不会忘记赋值,不会出现“垃圾值”。

    写法二:先定义盒子,以后再放数据

    int age;      // 先造一个盒子,里面还没放东西(实际上有随机垃圾值)
    age = 18;     // 再往里面放 18
    • 使用场景:你暂时还不知道这个变量是多少,比如等一下要从键盘输入一个数、或者经过复杂的计算才得到。
    • 为什么不能只用第一种? 想象一下,你要写一个程序,让用户输入他的年龄,然后存到变量里。你在写代码的时候,根本不知道用户会输多少,所以只能先定义 int age;,然后等用户输入时再 age = 用户输入的值。

    对比示例

    知道值的时候

    int price = 10;          // 苹果单价已知
    int count = 5;           // 买了5个苹果

    还不知道值的时候(后面会学 scanf):

    int score;
    printf("请输入你的成绩:");
    scanf("%d", &score);      // 用户输入后,score 就有了值

    错误示范:定义变量后,一次都没有赋值就直接使用。

    int a;
    printf("%d", a);   // 输出垃圾值(可能是 0,也可能是乱七八糟的数)

    3.3 变量命名规则(简单记)

    • 只能包含 字母、数字、下划线,且不能以数字开头。
    • 不能用C语言的关键字(如 int, return, if 等)。
    • 区分大小写:Score 和 score 不一样。
    • 强烈建议:用有意义的英文,单词间用下划线分隔,如 student_age、total_money。

    3.4 变量定义的代码风格 —— 特别强调!

    不推荐的写法

    int a=10, b=20, c;   // 一行写多个变量,可读性差

    推荐的写法(初学者必须养成习惯):

    int a = 10;    // 每行一个变量,等号两边加空格
    int b = 20;
    int c;         // 暂时不知道值,先定义
    c = 30;        // 后面再赋值
    为什么? 因为一行一个,清晰明了,不会漏掉初始值,也方便加注释。以后我们写项目、团队合作,都是这个风格。

    3.5 基本运算示例

    int a = 10;
    int b = 20;
    int sum = a + b;          // 加法
    printf("和:%d\n", sum);  // 输出 30
    
    int money = 100;
    money = money + 2;        // 自己加2 → 102
    printf("余额:%d\n", money);
    
    int blood = 100;  //当前英雄血量
    int hurt = 30;    //扣除血量
    int blood_left = blood - hurt;   // 减法
    printf("剩余血量:%d\n", blood_left);  // 输出 70

    3.6 变量的修改

    变量可以多次赋值,新值会覆盖旧值。

    int x = 5;
    x = 10;        // 现在 x 是 10
    x = x + 1;     // 现在 x 是 11

    四、常见错误与纠正 —— 排雷

    错误现象错误原因正确写法
    编译报错 expected ‘;’ before ...每条语句后忘记分号printf("hi");
    输出 0.000000 或乱码int a=5; printf("%f", a); 类型不匹配printf("%d", a);
    字符串输出 (null) 或乱码用了单引号 'hello'"hello" 双引号
    字符输出奇怪符号用了双引号 "A"'A' 单引号
    变量输出的值不对变量定义后没有初始化就直接使用int a = 0; 或先赋值
    一行定义多个变量导致混淆int a=10, b=20;分成两行写
    程序找不到入口main 写成了 mianMainint main()

    五、代码风格建议 —— 从一开始就优雅

    1. 每行只写一条语句,不要炫技。
    2. 变量定义时能初始化就初始化,避免垃圾值。
    3. 每行只定义一个变量(除非是极简的循环计数器 int i, j;,但新手不建议)。
    4. 等号两边加空格:int age = 18; 而不是 int age=18;。
    5. 大括号风格统一:推荐 int main() { ... } 或者:cint main() { // ... }选一种,全文保持一致。

    六、总结 & 下一步

    一句话记忆:C程序唯一的门是 main,输出用 printf 且类型匹配,变量每行定义并初始化,知道值就一次搞定,不知道就先留空再赋值。

    已经学过的知识链条

    //程序骨架(#include + main) → 输出(printf + 占位符 + 转义符) → 变量(定义、初始化、赋值、命名) → 基本运算 → 常见错误 → 代码风格

    接下来你会学到

    • 输入函数 scanf:让程序和用户互动。
    • 条件判断(if、switch):让程序根据不同情况执行不同代码。
    • 循环(for、while):让重复的事情自动完成。
    • 数组:存放一组相同类型的数据。
    • 函数:把代码打包成可复用的模块。

    寄语:C语言是很多高级语言的基础,刚开始可能会觉得琐碎,但只要你按照笔记里的风格练习,每个知识点都亲手敲一遍代码,很快就能上手。遇到问题先对照“常见错误”表,自己排雷能力会越来越强。加油!

    评论

  • 0
    /1000
    最热
  • 最新

    确认跳转

    您即将离开当前页面,访问外部链接。请注意核对网址,保护隐私安全。

    https://example.com

    言心安全助手 · 建议确认来源可信

    • 0
    • 1
    • 0
    登录后参与评论