news 2026/9/10 23:38:05

大一新生学 C 语言:先动手,再学基础语法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
大一新生学 C 语言:先动手,再学基础语法

学习东西不能光听,一定要多动手,多实践,才能看出问题,并且去解决。往往你听起来会了,但是实际让你在敲一遍刚刚的代码,真不一定能敲对。

学习编程尤其如此。看视频、听讲解,感觉每一步都懂了,可一旦关掉教程,让你自己从头敲一遍,往往卡在第一个报错上。所以从今天开始,咱们定一个原则:每学一个知识点,就动手敲一遍代码,亲眼看到运行结果。只有亲手踩过坑、亲手解决掉问题,知识才是真正属于你的。

接下来,咱们按顺序学习 C 语言的基础知识。下面这份清单就是咱们的学习路线,每一项都会配合代码实战来讲解。

1. 基础语法与程序结构

先认识一个 C 程序的基本骨架。任何 C 程序都从main函数开始执行,#include用来引入头文件。

#include <stdio.h> int main() { printf("Hello, C!\n"); return 0; }

把这段代码敲进编译器,运行,看到屏幕上输出Hello, C!,你的第一个 C 程序就跑通了。

2. 变量与数据类型

变量用来存数据,数据类型决定了数据占多大空间、能存什么范围的值。常用的类型有:

  • char:字符型,占 1 字节,可存一个字符或小整数。
  • int:整型,占 4 字节,存普通整数。
  • short:短整型,占 2 字节,存范围较小的整数。
  • unsigned char:无符号字符型,只能存非负数。
  • unsigned int:无符号整型,只能存非负整数。
  • uint8_t:8 位无符号整数,等价于 unsigned char。
  • uint16_t:16 位无符号整数,等价于 unsigned short。
#include <stdio.h> #include <stdint.h> int main() { char a = 'A'; int b = 100; short c = 10; unsigned char d = 200; uint8_t e = 255; uint16_t f = 65535; printf("a=%c, b=%d, c=%d, d=%u, e=%u, f=%u\n", a, b, c, d, e, f); return 0; }

动手改一改这些变量的值,看看超出范围会发生什么,你会对数据类型有更深的体会。

3. 变量与常量

变量可以随时改变,常量一旦定义就不能改。#define是常用的定义常量的方式。

#include <stdio.h> #define PI 3.14159 int main() { int r = 2; float area = PI * r * r; printf("area = %f\n", area); return 0; }

试着把PI的值改掉再编译,看看编译器会不会报错,你就明白常量的含义了。

4. 运算符

C 语言的运算符很丰富,这里先掌握最常用的一批:

  • 算术运算符+-*/++--
  • 位运算符&|^
  • 逻辑运算符&&||!
  • 关系运算符<>=
#include <stdio.h> int main() { int a = 5, b = 3; printf("a+b=%d\n", a + b); printf("a&b=%d\n", a & b); printf("a|b=%d\n", a | b); printf("a^b=%d\n", a ^ b); printf("a&&b=%d\n", a && b); printf("a||b=%d\n", a || b); printf("!a=%d\n", !a); printf("a>b=%d\n", a > b); return 0; }

把每个运算符的结果都打印出来,对照着看,理解会快很多。

5. 流程控制语句

程序不是永远从上往下跑,需要根据条件做判断、循环执行,这就用到流程控制语句。

  • if-else:条件判断。
  • for:计数循环。
  • while:条件循环。
  • break:跳出循环。
#include <stdio.h> int main() { int i; // if-else int score = 85; if (score >= 60) { printf("及格\n"); } else { printf("不及格\n"); } // for for (i = 0; i < 5; i++) { printf("i=%d\n", i); } // while + break int n = 0; while (1) { n++; if (n >= 3) { break; } printf("n=%d\n", n); } return 0; }

if的条件改一改,把for的循环次数改一改,看看输出怎么变,你就真正掌握它们了。

6. 数组与字符串

数组用来存一组相同类型的数据,字符串本质上是字符数组。

#include <stdio.h> int main() { int nums[5] = {10, 20, 30, 40, 50}; char str[] = "Hello"; for (int i = 0; i < 5; i++) { printf("nums[%d]=%d\n", i, nums[i]); } printf("str=%s\n", str); return 0; }

试着修改数组里的某个值,或者把字符串改成你自己的名字,再运行看看。

7. 函数

函数把一段逻辑封装起来,方便重复调用。C 程序就是由一个个函数组成的。

#include <stdio.h> int add(int x, int y) { return x + y; } int main() { int result = add(3, 4); printf("3 + 4 = %d\n", result); return 0; }

自己再写一个减法函数、乘法函数,体会一下封装和复用的好处。

8. 指针

指针是 C 语言的难点,也是精髓。它存的是变量的地址,通过地址可以间接访问变量。

#include <stdio.h> int main() { int a = 10; int *p = &a; printf("a 的值: %d\n", a); printf("a 的地址: %p\n", &a); printf("p 的值: %p\n", p); printf("通过 p 访问 a: %d\n", *p); *p = 20; printf("修改后 a 的值: %d\n", a); return 0; }

指针一开始容易绕晕,别急,多画图、多敲几遍,慢慢就通了。

9. 结构体

结构体把不同类型的数据打包成一个整体,用来描述一个对象。

#include <stdio.h> #include <string.h> struct Student { char name[20]; int age; float score; }; int main() { struct Student s1; strcpy(s1.name, "小明"); s1.age = 18; s1.score = 92.5; printf("姓名: %s\n", s1.name); printf("年龄: %d\n", s1.age); printf("成绩: %.1f\n", s1.score); return 0; }

试着再定义一个学生,或者给结构体加一个字段,看看怎么用。

10. 总结

以上就是咱们 C 语言基础的学习路线。记住,光听不练假把式。每一个知识点,都请打开编译器亲手敲一遍,遇到报错就自己查、自己改。等你把这份清单里的代码全部亲手跑通,你的 C 语言基础就算真正打牢了。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/10 23:37:22

Barrick海杂波模型Matlab实战:从物理原理到工程部署

1. 这不是教科书里的公式推导&#xff0c;而是一次实打实的海面雷达回波建模实战 “一种雷达海杂波反射率经验模型matlab模拟仿真”——看到这个标题&#xff0c;你脑子里浮现的是不是一堆希腊字母、积分符号和“参考文献[3]”&#xff1f;别急。我干这行十二年&#xff0c;从岸…

作者头像 李华
网站建设 2026/8/30 9:44:37

用触摸屏自制便携功率分析仪:波形显示与功率测量一体化设计

项目概述与核心设计思路功率分析仪&#xff08;Power Analyzer&#xff09;一直是电子工程师和硬件调试人员桌上不可或缺的工具&#xff0c;但市面上的商用功率分析仪价格动辄几千上万&#xff0c;而且操作界面老旧、交互逻辑复杂。这个项目要做的事情很明确&#xff1a;用一块…

作者头像 李华
网站建设 2026/8/30 5:45:37

2026怀化工程建筑材料检测排名 TOP5 CMA 资质提供钢材检测、水泥检测、砂石检测 全覆盖联系方式推荐

怀化城区建材检测机构星罗棋布&#xff0c;既有扎根多年的本土老牌实验室&#xff0c;也有全国连锁的第三方检测平台。建筑总包单位、建材生产厂家、市政工程项目、装修建设企业选材验收时&#xff0c;稍有不慎就会遇上无资质机构出具的检测报告&#xff0c;这类报告根本无法用…

作者头像 李华
网站建设 2026/9/2 2:19:34

手机号查QQ号3分钟快速指南:phone2qq 三步跑通完整教程

手机号查QQ号3分钟快速指南&#xff1a;phone2qq 三步跑通完整教程 【免费下载链接】phone2qq 项目地址: https://gitcode.com/gh_mirrors/ph/phone2qq 帮家人找回QQ号&#xff0c;他只记得绑定的手机号&#xff0c;QQ号死活想不起来。用开源小工具 phone2qq 做手机号查…

作者头像 李华
网站建设 2026/9/10 8:24:38

信息存储与管理:从基础概念到技术演进与落地实践

信息存储与管理&#xff0c;是计算机科学与信息技术领域最基础也最核心的命题之一。它贯穿于每一行代码的执行、每一次数据的写入与读取&#xff0c;也关乎每一个企业数据资产的可用性、安全性与长期价值。理解信息存储与管理的技术体系&#xff0c;不仅是对底层基础设施的认知…

作者头像 李华