基础结构

1
2
3
4
5
6
7
#include <stdio.h>  // 包含标准输入输出头文件

// main函数是程序入口点
int main() {
printf("Hello, World!\n"); // 输出文本
return 0; // 程序正常结束
}

数据类型

基本数据类型

1
2
3
4
5
6
int age = 25;              // 整型:-2,147,483,648 到 2,147,483,647
short smallNumber = 100; // 短整型:-32,768 到 32,767
long bigNumber = 123456L; // 长整型
float price = 19.99f; // 单精度浮点数:6-7位小数
double pi = 3.1415926535; // 双精度浮点数:15-16位小数
char grade = 'A'; // 字符型

限定符

1
2
unsigned int positive = 300;  // 无符号整型:0 到 4,294,967,295
const int MAX_VALUE = 100; // 常量,不可修改

变量与常量

1
2
3
4
5
6
7
8
9
10
// 变量声明与初始化
int count;
count = 10;

// 多变量声明
int x = 5, y = 10, z = 15;

// 常量定义
#define PI 3.14159 // 预处理常量
const int MAX_SIZE = 100; // const常量

运算符

算术运算符

1
2
3
4
5
6
int a = 10, b = 3;
int sum = a + b; // 加法:13
int diff = a - b; // 减法:7
int product = a * b;// 乘法:30
int quotient = a / b; // 除法:3
int remainder = a % b; // 取模:1

关系运算符

1
2
3
4
5
6
a == b;  // 等于
a != b; // 不等于
a > b; // 大于
a < b; // 小于
a >= b; // 大于等于
a <= b; // 小于等于

逻辑运算符

1
2
3
(a > 0) && (b < 10);  // 逻辑与
(a > 0) || (b < 10); // 逻辑或
!(a > 0); // 逻辑非

位运算符

1
2
3
4
5
6
a & b;   // 按位与
a | b; // 按位或
a ^ b; // 按位异或
~a; // 按位取反
a << 2; // 左移2位
a >> 2; // 右移2位

控制结构

条件语句

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// if-else语句
if (score >= 90) {
printf("优秀\n");
} else if (score >= 60) {
printf("及格\n");
} else {
printf("不及格\n");
}

// switch语句
switch (day) {
case 1:
printf("星期一\n");
break;
case 2:
printf("星期二\n");
break;
default:
printf("其他天\n");
}

循环语句

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// for循环
for (int i = 0; i < 10; i++) {
printf("%d ", i);
}

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

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

跳转语句

1
2
3
4
5
6
7
8
9
for (int i = 0; i < 10; i++) {
if (i == 5) {
break; // 跳出循环
}
if (i % 2 == 0) {
continue; // 跳过本次循环
}
printf("%d ", i);
}

函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 函数声明
int add(int a, int b);

// 主函数
int main() {
int result = add(5, 3);
printf("结果: %d\n", result);
return 0;
}

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

数组

1
2
3
4
5
6
7
8
9
10
11
12
13
// 一维数组
int numbers[5] = {1, 2, 3, 4, 5};
numbers[0] = 10; // 修改第一个元素

// 二维数组
int matrix[2][3] = {
{1, 2, 3},
{4, 5, 6}
};

// 字符串(字符数组)
char greeting[] = "Hello";
char name[20] = "张三";

指针

1
2
3
4
5
6
7
8
9
10
11
12
int var = 20;
int *ptr = &var; // ptr指向var的地址

printf("变量值: %d\n", var); // 输出: 20
printf("指针值: %p\n", ptr); // 输出: 内存地址
printf("指针指向的值: %d\n", *ptr); // 输出: 20

// 指针与数组
int arr[3] = {10, 20, 30};
int *arrPtr = arr;
printf("第一个元素: %d\n", *arrPtr); // 输出: 10
printf("第二个元素: %d\n", *(arrPtr + 1)); // 输出: 20

结构体与联合体

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// 结构体定义
struct Person {
char name[50];
int age;
float height;
};

// 结构体使用
struct Person person1;
strcpy(person1.name, "张三");
person1.age = 25;
person1.height = 175.5;

// 联合体定义
union Data {
int i;
float f;
char str[20];
};

// 联合体使用
union Data data;
data.i = 10;
printf("data.i: %d\n", data.i);

预处理指令

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>  // 包含系统头文件
#include "myheader.h" // 包含自定义头文件

#define MAX 100 // 定义宏
#undef MAX // 取消宏定义

#ifdef DEBUG // 如果定义了DEBUG
printf("调试模式\n");
#endif

#ifndef PI // 如果没有定义PI
#define PI 3.14159
#endif

文件操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>

int main() {
FILE *file;

// 写入文件
file = fopen("example.txt", "w");
if (file != NULL) {
fprintf(file, "Hello, File!\n");
fclose(file);
}

// 读取文件
char buffer[255];
file = fopen("example.txt", "r");
if (file != NULL) {
fgets(buffer, 255, file);
printf("文件内容: %s", buffer);
fclose(file);
}

return 0;
}

内存管理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdlib.h>

// 动态内存分配
int *arr = (int*)malloc(5 * sizeof(int)); // 分配内存
if (arr != NULL) {
for (int i = 0; i < 5; i++) {
arr[i] = i * 10;
}
free(arr); // 释放内存
}

// 另一种分配方式
int *arr2 = (int*)calloc(5, sizeof(int)); // 分配并初始化为0
arr2 = (int*)realloc(arr2, 10 * sizeof(int)); // 重新分配内存
free(arr2);