C语言基础知识点大全(从入门到不掉头发指南)

前言:咱们为什么要学C语言?

(认真脸)想当年我第一次接触C语言时,满脑子都是问号——这玩意儿比英语还难懂?但后来发现它就像乐高积木,只要掌握了基础语法,就能搭出超酷的程序!今天咱们不讲玄学,只说人话,带你用最接地气的方式啃下这块硬骨头!


一、Hello World是宇宙真理

所有编程语言都要从打印"Hello World"开始,这是程序员届的祖传仪式感!来感受下C语言的灵魂代码:

#include <stdio.h>  // 头文件必须写!(敲黑板)

int main() {        // 主函数是程序入口,记不住就去面壁
    printf("Hello 菜鸟程序员!\n");  // \n是换行符,不加的话...
    return 0;       // 返回0表示正常退出,否则系统会哭
}

运行这段代码时你会经历:

  1. 被各种报错虐哭 😭
  2. 终于看到输出时的狂喜 😍
  3. 怀疑自己是不是打错了分号 🤔
    (别问我怎么知道的)

二、变量声明就像贴标签

2.1 基本数据类型

类型说明举个栗子
int整型(存整数)int age = 18;
float单精度浮点型float pi = 3.14;
double双精度浮点型(更精确)double money = 3.1415926;
char字符型char grade = ‘A’;

(超级重要)变量命名三大法则:

  1. 见名知意(别用a1、a2这种火星文)
  2. 区分大小写(age和Age是两回事)
  3. 不能以数字开头(想当黑客另说)

2.2 常量声明

const关键字定义永恒不变的量:

const float PI = 3.14159;  // 圆周率永远不变
// PI = 3.14;  ← 这行会报错,不信你试试?

三、运算符的花式玩法

3.1 算术运算符

int a = 10, b = 3;
printf("%d\n", a + b);  // 13
printf("%d\n", a % b);  // 1(取余运算超实用!)

3.2 自增/自减的坑

int i = 5;
printf("%d\n", i++);  // 输出5(先用后加)
printf("%d\n", ++i);  // 输出7(先加后用)

(警告)这玩意儿能写出天坑代码,建议新手慎用!


四、流程控制:程序的决策时刻

4.1 if-else 全家桶

int score = 85;
if(score >= 90) {
    printf("学霸求带!");
} else if(score >= 60) {
    printf("好险没挂科...");
} else {
    printf("准备补考吧少年!");
}

4.2 switch-case 的正确姿势

char grade = 'B';
switch(grade) {
    case 'A': printf("优秀!"); break;
    case 'B': printf("良好");   break;
    case 'C': printf("及格");   break;
    default:  printf("你不对劲"); 
}
// 忘记写break会触发连环车祸现场!

五、循环结构:永动机的谎言

5.1 for循环三件套

for(int i=0; i<5; i++) {
    printf("第%d次循环\n", i+1);
}
// 输出结果:
// 第1次循环
// ...(此处省略三次)
// 第5次循环

5.2 while循环的倔强

int count = 3;
while(count > 0) {
    printf("还剩%d次\n", count);
    count--;
}
// 输出:
// 还剩3次
// 还剩2次
// 还剩1次

(血泪教训)写循环一定要设置终止条件,否则你会看到电脑在冒烟…


六、数组:批量处理神器

6.1 一维数组

int scores[5] = {90, 85, 78, 92, 88}; 
// 访问时记得下标从0开始!
printf("第三位同学的成绩:%d", scores[2]);  // 输出78

6.2 二维数组(表格数据)

int matrix[2][3] = {
    {1, 2, 3},
    {4, 5, 6}
};
printf("第二行第三列:%d", matrix[1][2]);  // 输出6

七、函数:代码复用的艺术

7.1 函数定义四要素

// 1.返回类型 2.函数名 3.参数列表 4.函数体
int add(int a, int b) {
    return a + b;
}

7.2 实际调用

int result = add(3, 5);
printf("3+5=%d", result);  // 输出8

(冷知识)main函数也是个函数,而且每个程序必须有且只有一个main函数!


八、指针:C语言的灵魂拷问

8.1 基础概念

int num = 10;
int *p = &num;  // p保存了num的地址
printf("数值:%d\n", *p);  // 输出10
printf("地址:%p\n", p);   // 输出类似0x7ffeeb7a

8.2 指针与数组的暧昧关系

int arr[3] = {1,2,3};
int *ptr = arr;
printf("第一个元素:%d", *ptr);      // 1
printf("第二个元素:%d", *(ptr+1)); // 2

(重要提示)指针用好了是神器,用错了就是程序崩溃的万恶之源!


九、结构体:自定义数据类型

9.1 定义学生结构体

struct Student {
    char name[20];
    int age;
    float score;
};

9.2 使用示例

struct Student stu1;
strcpy(stu1.name, "小明");
stu1.age = 18;
stu1.score = 90.5;

printf("%s考了%.1f分", stu1.name, stu1.score);

十、文件操作:数据的持久化

10.1 写入文件

FILE *fp = fopen("data.txt", "w");
if(fp != NULL) {
    fprintf(fp, "这是要保存的数据");
    fclose(fp);  // 一定要关文件!
}

10.2 读取文件

char buffer[100];
FILE *fp = fopen("data.txt", "r");
fgets(buffer, 100, fp);
printf("读取内容:%s", buffer);
fclose(fp);

结语:路漫漫其修远兮

看完这万字长文(其实你可能已经跳过了很多代码),是不是觉得C语言就像个傲娇的猫主子?刚开始会觉得它高冷难懂,但熟悉之后就会发现它的强大与优雅。记住,编程不是看会的,是敲出来的!赶紧打开你的IDE,把文中的示例代码都敲一遍(记得改几个数试试),不出三天,你就能用C语言写出让你室友惊掉下巴的程序了!

(最后小声bb)如果遇到段错误,别摔键盘,那只是C语言在和你玩捉迷藏呢~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值