C语言总结


前言

C语言是一种高效、灵活的通用编程语言,由Dennis Ritchie于1972年在贝尔实验室开发。它广泛应用于操作系统(如Linux、Windows内核)、嵌入式系统、游戏开发等领域。本文将从基础语法高级特性,系统性地总结C语言的核心知识,适合初学者快速掌握,也适合开发者复习巩固。


2. C语言基础

2.1 第一个C程序

#include <stdio.h>  // 标准输入输出头文件

int main() {        // 主函数,程序入口
    printf("Hello, World!\n"); // 输出语句
    return 0;       // 返回0表示程序正常结束
}
  • #include <stdio.h>:引入标准输入输出库,支持printfscanf等函数。

  • main():程序的唯一入口,必须返回int类型值(通常0表示成功)。

  • printf():格式化输出函数,\n表示换行。

2.2 基本语法规则

  • 区分大小写int是关键字,Int不是。

  • 语句以分号结尾int a = 10;

  • 注释

// 单行注释
/* 多行
   注释 */

3. 数据类型与变量

3.1 基本数据类型

类型关键字大小(字节)示例
整型int4int a = 10;
短整型short2short b;
长整型long4/8long c;
字符型char1char ch='A';
单精度浮点float4float f=3.14;
双精度浮点double8double d;

3.2 变量与常量

  • 变量声明

int age = 20;      // 变量
const float PI = 3.14; // 常量(不可修改)
#define MAX 100    // 宏常量(预处理阶段替换)
  • 命名规则

    • 由字母、数字、下划线组成,不能以数字开头。

    • 不能使用关键字(如intreturn)。

4. 运算符

4.1 算术运算符

int a = 10, b = 3;
a + b;  // 13
a - b;  // 7
a * b;  // 30
a / b;  // 3(整数除法)
a % b;  // 1(取余)
a++;    // 自增(a=11)
b--;    // 自减(b=2)

4.2 关系与逻辑运算符

int x = 5, y = 10;
x == y;  // 0(假)
x != y;  // 1(真)
x > y;   // 0
x < y;   // 1
!x;      // 0(逻辑非)
x && y;  // 1(逻辑与)
x || y;  // 1(逻辑或)

4.3 位运算符

unsigned char a = 0b0011, b = 0b0101;
a & b;  // 0b0001(按位与)
a | b;  // 0b0111(按位或)
a ^ b;  // 0b0110(异或)
~a;     // 0b1100(取反)
a << 2; // 0b1100(左移2位)
b >> 1; // 0b0010(右移1位)

5. 控制结构

5.1 条件语句

if (score >= 90) {
    printf("A");
} else if (score >= 60) {
    printf("B");
} else {
    printf("C");
}

5.2 循环语句

// for循环
for (int i = 0; i < 10; i++) {
    printf("%d ", i);
}

// while循环
int j = 0;
while (j < 10) {
    printf("%d ", j);
    j++;
}

// do-while循环
int k = 0;
do {
    printf("%d ", k);
    k++;
} while (k < 10);

5.3 switch-case

int day = 3;
switch (day) {
    case 1: printf("Monday"); break;
    case 2: printf("Tuesday"); break;
    default: printf("Unknown");
}

6. 函数

6.1 函数定义与调用

// 定义函数
int add(int a, int b) {
    return a + b;
}

// 调用函数
int result = add(3, 5);  // result=8

6.2 递归函数

int factorial(int n) {
    if (n == 0) return 1;
    return n * factorial(n - 1);
}
printf("%d", factorial(5));  // 120

7. 数组与字符串

7.1 数组

int arr[5] = {1, 2, 3, 4, 5};  // 静态数组
for (int i = 0; i < 5; i++) {
    printf("%d ", arr[i]);
}

7.2 字符串

char str1[] = "Hello";  // 自动补'\0'
char str2[10] = {'H', 'i', '\0'};
printf("%s", str1);     // Hello

8. 指针

8.1 基本指针操作

int num = 10;
int *p = &num;  // p指向num的地址
printf("%d", *p);  // 10(解引用)

8.2 指针与数组

int arr[3] = {1, 2, 3};
int *ptr = arr;  // ptr指向arr[0]
printf("%d", *(ptr + 1));  // 2(等同于arr[1])

8.3 动态内存分配

int *p = (int*)malloc(5 * sizeof(int));  // 分配5个int空间
free(p);  // 释放内存

9. 结构体与文件操作

9.1 结构体

struct Student {
    char name[20];
    int age;
};
struct Student s1 = {"Alice", 20};

9.2 文件操作

FILE *fp = fopen("test.txt", "w");  // 打开文件
fprintf(fp, "Hello, File!");       // 写入
fclose(fp);                        // 关闭

总结

C语言的核心内容包括:

  1. 基础语法(变量、运算符、控制结构)。

  2. 函数与指针(核心难点)。

  3. 内存管理(动态分配、释放)。

  4. 文件与结构体(数据持久化与组织)。

学习建议

  • 多动手写代码(如实现排序算法、链表)。

  • 阅读经典开源项目(如Linux内核)。

  • 理解指针和内存管理机制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值