第1节:C语言初体验——环境、结构与基本数据类型

引言:欢迎来到"底层世界"游乐场

欢迎来到我们的C语言大冒险。我知道你可能已经玩转了Python或者Java,能用它们轻松地写出网站、处理数据。那些语言很棒,它们就像功能强大的智能手机------图标漂亮,操作简单,手指点点就能完成复杂任务。你不需要知道触摸屏是怎么工作的,也不用关心里面的芯片是如何计算的。

但我们现在要去的,是一个更刺激、更原始的地方------计算机的"底层世界"。在这里,我们需要更像一个电脑维修工程师。你不能只会用电脑,还得能打开机箱,用万用表、电烙铁,去测量、去修理、甚至去改造它。

C语言,就是我们作为"计算机维修工程师"的第一套工具箱。它不像智能手机那么"友好",但它能让你直接跟CPU、内存这些硬件部件对话。病毒、木马、系统漏洞都喜欢藏在这个底层世界里,所以,想成为安全专家,这里是你的必经之路。

别担心,这套工具一开始用可能有点手生,但我们会一步步来。今天,我们的任务就是认识这套工具,并且用它拧下我们的"第一颗螺丝"。

第一部分:打造你的专属工具箱------用VSCode搭建C语言环境

既然要当工程师,首先得有个工作台。我们不选那些庞大复杂的"一体化工作站"(比如Visual Studio),而是选择一款轻便、灵活又强大的"多功能工具钳"------Visual Studio Code (VSCode)

1. 为啥选VSCode?

  • 轻快免费: 启动速度快,不占地方,完全免费。
  • 万物皆可插件: 通过安装插件,它能变成任何你需要的开发环境,C语言只是小菜一碟。
  • 通用技能: 学会配置VSCode,对你以后学习其他语言也极有帮助。

2. 四步搭建环境,跟搭积木一样简单

第一步:下载安装VSCode

去VSCode官网,下载对应你操作系统的版本,一路"下一步"安装就行。

第二步:安装C语言编译器(最重要的零件!)

VSCode本身只是个"空壳",它不会编译C代码。我们需要一个真正的"编译器",来把咱们写的英文代码翻译成电脑能懂的0和1。

  • 对于Windows用户: 推荐下载 MinGW-w64 。你可以把它理解为一个专门为Windows提供的C语言翻译官。
    • 简单方法:去SourceForge等网站搜索"MinGW-w64",下载一个预编译好的版本,解压到一个简单的路径,比如 C:\mingw64
    • 关键一步:C:\mingw64\bin 这个目录添加到系统的"环境变量"(Path)里。这样,系统在任何地方都能找到这个翻译官了。(不会的话可以搜索"Windows添加环境变量",有大量图文教程)
  • 对于Mac用户: 在终端(Terminal)里输入 xcode-select --install 安装命令行工具。
  • 对于Linux用户: 在终端里输入 sudo apt install build-essential (Ubuntu/Debian) 或相应命令。

第三步:配置VSCode(安装插件,给工具钳装上刀头)

打开VSCode,点击侧边栏的"扩展"图标(或按 Ctrl+Shift+X),搜索并安装以下两个核心插件:

  1. C/C++ (由Microsoft发布): 这是核心,提供代码高亮、错误提示、调试等功能。
  2. Code Runner: 让你能一键轻松运行代码,非常适合新手。

第四步:验证你的工具箱

  1. 在电脑上新建一个文件夹,专门用来放我们的C代码项目,比如叫 C_Learning
  2. 用VSCode的 文件 -> 打开文件夹 打开这个文件夹。
  3. 在里面新建一个文件,命名为 hello.c。看,VSCode自动识别了 .c 后缀,已经给你高亮显示了!

恭喜!你的专属C语言游乐场已经搭建完毕!

第二部分:拆解"Hello, World!"------你的第一个C程序

现在,在 hello.c 文件里,一字不差地输入下面的"魔法咒语":

c 复制代码
#include <stdio.h>

int main() {
    printf("Hello, World!\n");
    return 0;
}

输入完后,点击VSCode右上角那个小小的"播放"三角按钮(这是Code Runner插件提供的),你就能在下面的"输出"窗口看到 Hello, World! 了!

是不是很有成就感?但先别急着高兴,让我们来当一回"语法老师",搞清楚这短短几行代码到底在"念叨"些什么。

第1行:#include <stdio.h> ------ 找人帮忙

  • 这行代码的意思特别直白:#include 就是"请把...包含进来"。
  • stdio.h 是什么?它是一个头文件 。你可以把它想象成一个**"工具说明书"**。std=标准,io=输入输出。所以,stdio.h 就是"标准输入输出工具说明书"。
  • 我们下面要用到的 printf 这个工具(用来在屏幕上打印文字),它的使用方法就写在这个说明书里。所以,我们在用之前,必须得先把说明书 #include 进来,告诉编译器:"喂,我等下要用的工具,规则都在这本说明书里,你先看看!"

第2行和第5行:int main() { ... } ------ 程序的"大门"

  • 每一个C程序,无论大小,都必须有一个 main 函数。你可以把整个程序想象成一栋大楼,main 函数就是这栋大楼的唯一大门。程序启动后,会毫不犹豫地直接走进这个大门开始执行。
  • int 是"整数"的英文缩写,它放在 main 前面,表示这个"大门"执行完后,会向系统返回一个整数。
  • 那个大括号 { } 就是把大门里面的所有内容都包起来,里面就是程序要做的所有事情。

第3行:printf("Hello, World!\n"); ------ 下达指令

  • printf 就是我们刚才引入的"打印工具"。它的作用就是把双引号 "" 里面的内容原样输出到屏幕上。
  • 注意那个神奇的 \n,它不是一个普通的字符,它代表"换行",就像你在键盘上按了一下回车键。没有它,所有内容都会挤在一行。
  • 重中之重:那个分号 ; 在C语言里,分号就像一句话说完之后的句号。它告诉编译器:"我这条指令说完了,可以翻译了。" 忘记写分号是新手最常犯的错误,编译器会报错的!

第4行:return 0; ------ 打完收工

  • 这是 main 函数里的最后一条指令。
  • return 就是"返回"。因为咱们的"大门" main 函数答应要返回一个 int(整数),所以这里我们写 return 0;
  • 返回 0 是给操作系统看的,意思是:"我所有的活儿都干完了,而且一切正常,完美收工!" (在计算机世界里,通常用0表示成功,非0表示各种错误)。
第三部分:认识C语言的"基本积木"------数据类型与变量

现在我们已经会让程序"说话"了,接下来得让它会"算数"。首先,得认识一下C语言里有哪些不同类型的"数字积木"。

1. 基本数据类型:给数据分个类

C语言对待数据非常"严谨",它把数字分成了好几种类型,每种类型占用的"储物格"(内存)大小不一样。

数据类型 中文名 用来干什么 举个例子
int 整型 存整数 100, -5, 0
float 单精度浮点型 存小数(没那么精确) 3.14, -0.001
double 双精度浮点型 存小数(非常精确) 3.1415926535
char 字符型 存一个字符 'A', 'z', '$'

注意: 字符要用单引号 '' 括起来,字符串才用双引号 ""

2. 用sizeof窥探"储物格"的大小

怎么知道每种类型的"储物格"有多大呢?用 sizeof 这个尺子量一下!把下面的代码贴到你的 main 函数里试试(可以把之前的代码注释掉):

c 复制代码
#include <stdio.h>

int main() {
    printf("一个 int 占用的空间是:%zu 字节\n", sizeof(int));
    printf("一个 float 占用的空间是:%zu 字节\n", sizeof(float));
    printf("一个 double 占用的空间是:%zu 字节\n", sizeof(double));
    printf("一个 char 占用的空间是:%zu 字节\n", sizeof(char));
    return 0;
}

运行一下,你会看到类似这样的结果。这个"字节"就是计算机里空间的基本单位。看到 doublefloat 大了吧?因为它要存更精确的小数,所以需要更大的"储物格"。这是我们第一次真正地"触摸"到内存的概念!

3. 变量:数据的临时储物间

程序运行中,我们需要一些临时的"储物间"来存放会变化的数据,这就是变量

创建一个变量,就像在超市租一个存包柜:

  1. 声明类型: 你先要告诉系统,你要租一个存什么类型的柜子。int age; ------ 这句话就是:"我要一个存整数的柜子,名字叫 age"。
  2. 赋值: 然后把东西放进去。age = 18; ------ "把数字18放进 age 这个柜子里"。
    • 你也可以一步到位:int age = 18; (租下柜子的同时就把东西放进去了)。

变量的命名规则(起个好名字):

  • 可以包含字母、数字、下划线 _
  • 不能以数字开头。(1st_var 是错误的,var_1 是正确的)。
  • 不能跟C语言的关键字(如 int, return)重名。
  • 区分大小写! ageAge 是两个不同的变量。

4. 常量:一旦设定,永不改变

有些数据是固定不变的,比如圆周率π。我们可以用 const 关键字把它定义成一个常量。

const double PI = 3.14159;

加上 const 就像给存包柜上了一把锁,一旦你 PI = 3.14; 试图修改它,编译器就会立刻报错阻止你。这是一种非常好的保护数据的习惯。

第四部分:动手时刻------打造一个简易计算器

理论知识够了,我们来点真格的!目标是写一个程序,能计算我们输入的两个整数的和、差、积。

思路拆解:

  1. 我们需要两个整数变量,比如 ab,来存储用户输入的数字。
  2. 要用到一个新的工具 scanf 来读取用户的输入。它和 printf 是好朋友,都在 stdio.h 说明书里。
  3. 分别计算 a + b, a - b, a * b,并用 printf 打印出来。

上代码!

c 复制代码
#include <stdio.h>

int main() {
    // 1. 声明两个变量,用来存用户输入的数字
    int a, b;

    // 2. 请用户输入第一个数
    printf("请输入第一个整数:");
    scanf("%d", &a); // &符号很重要,它告诉scanf a的"地址"在哪,它才能把值存进去。

    // 3. 请用户输入第二个数
    printf("请输入第二个整数:");
    scanf("%d", &b);

    // 4. 计算并输出结果
    printf("\n---计算结果---\n");
    printf("%d + %d = %d\n", a, b, a + b); // 用 %d 来占位,表示这里要放一个整数
    printf("%d - %d = %d\n", a, b, a - b);
    printf("%d * %d = %d\n", a, b, a * b);

    return 0;
}

运行并体验:

  1. 点击运行。
  2. 在输出窗口里,你会看到"请输入第一个整数:",然后你需要用键盘输入一个数字,按回车。
  3. 再输入第二个数字,按回车。
  4. 奇迹发生了!程序自动为你算出了和、差、积!

恭喜你! 你不仅写出了第一个C程序,还完成了一个能交互的、有用的程序。你已经成功地迈出了成为系统安全专家的第一步。记住这种感觉,在接下来的旅程中,我们会用这套越来越熟练的工具,去拆解更复杂、更刺激的东西------比如病毒和漏洞!

下一站,我们将学习如何让程序做出判断和重复劳动,那将会更加有趣!

相关推荐
William_wL_3 小时前
【C++】类和对象(下)
c++
William_wL_3 小时前
【C++】内存管理
c++
星星火柴9364 小时前
笔记 | C++面向对象高级开发
开发语言·c++·笔记·学习
悲伤小伞4 小时前
Linux_Socket_UDP
linux·服务器·网络·c++·网络协议·udp
八个程序员5 小时前
自定义函数(C++)
开发语言·c++·算法
微露清风6 小时前
系统性学习C++-第十讲-stack 和 quene
java·c++·学习
报错小能手6 小时前
C++笔记(面向对象)静态联编和动态联编
开发语言·c++·算法
WBluuue6 小时前
AtCoder Beginner Contest 430(ABCDEF)
c++·算法
Elias不吃糖6 小时前
第四天学习总结:C++ 文件系统 × Linux 自动化 × Makefile 工程化
linux·c++·学习