C语言是一种通用的、过程式的编程语言,广泛应用于系统软件开发、嵌入式系统、游戏开发等领域。以下是C语言的一些基础知识:
1. 基本概念
变量:用于存储数据的容器。变量在使用前需要声明,包括数据类型和变量名。
示例:
int age = 20;
(声明一个整型变量age
并赋值为20)
常量:值在程序运行过程中不能改变的量。
示例:
const int MAX = 100;
(声明一个常量MAX
,值为100)
数据类型:
基本数据类型:
int
(整型)、float
(单精度浮点型)、double
(双精度浮点型)、char
(字符型)、void
(无类型)构造数据类型:
struct
(结构体)、union
(共用体)、enum
(枚举)指针类型:
int*
(指向整型的指针)空类型:
void
(用于无返回值的函数或无指向的指针)
2. 运算符
算术运算符:
+
、-
、*
、/
、%
(取模)关系运算符:
>
、<
、>=
、<=
、==
(等于)、!=
(不等于)逻辑运算符:
&&
(逻辑与)、||
(逻辑或)、!
(逻辑非)位运算符:
&
(按位与)、|
(按位或)、^
(按位异或)、~
(按位取反)、<<
(左移)、>>
(右移)赋值运算符:
=
、+=
、-=
、*=
、/=
、%=
等其他运算符:
sizeof
(获取变量或类型的大小)、? :
(条件运算符)
3. 控制结构
顺序结构:按语句顺序依次执行。
选择结构:
if
语句:if (condition) { statement; } else { statement; }
switch
语句:switch (expression) { case value: statement; break; default: statement; }
循环结构:
for
循环:for (init; condition; increment) { statement; }
while
循环:while (condition) { statement; }
do-while
循环:do { statement; } while (condition);
4. 函数
定义:函数是完成特定任务的代码块。
示例:
c复制 int add(int a, int b) { return a + b; }
调用:通过函数名和参数调用函数。
示例:
int result = add(3, 5);
参数传递:
值传递:传递参数的副本,函数内修改不影响外部。
地址传递(指针):传递参数的地址,函数内修改会影响外部。
返回值:通过
return
语句返回值。
5. 数组
一维数组:
声明:
int arr[5];
(声明一个包含5个整型元素的数组)初始化:
int arr[] = {1, 2, 3, 4, 5};
多维数组:
声明:
int matrix[3][4];
(声明一个3行4列的二维数组)初始化:
int matrix[2][3] = {{1, 2, 3}, {4, 5, 6}};
6. 指针
定义:指针是一个变量,用于存储另一个变量的地址。
示例:
int* ptr;
(声明一个指向整型的指针)
指针操作:
取地址:
&
(int* ptr = &a;
)间接访问:
*
(int value = *ptr;
)
指针与数组:数组名是一个指向数组首元素的指针。
示例:
int arr[5]; int* ptr = arr;
指针与函数:可以传递指针作为函数参数,实现地址传递。
7. 结构体
定义:结构体是一种用户自定义的数据类型,用于将多个不同类型的数据组合在一起。
示例:
c复制 struct Student { int id; char name[50]; float score; };
使用:
声明:
struct Student stu;
访问成员:
stu.id = 1; stu.name = "Alice"; stu.score = 90.5;
8. 文件操作
文件指针:
FILE* fp;
打开文件:
fp = fopen("filename", "mode");
(r
读,w
写,a
追加)读写文件:
fread()
、fwrite()
(二进制读写)fprintf()
、fscanf()
(格式化读写)
关闭文件:
fclose(fp);
9. 预处理器
宏定义:
#define PI 3.14159
条件编译:
#ifdef
、#ifndef
、#endif
(用于条件编译)#include
(包含头文件,如#include <stdio.h>
)#pragma
(编译器指令)
10. 标准输入输出
输入:
scanf("%d", &variable);
(读取整数)scanf("%f", &variable);
(读取浮点数)scanf("%s", string);
(读取字符串)
输出:
printf("Hello, World!");
(输出字符串)printf("%d", variable);
(输出整数)printf("%.2f", variable);
(输出浮点数,保留两位小数)
11. 内存管理
动态内存分配:
malloc()
:分配内存,返回void*
指针calloc()
:分配内存并初始化为0realloc()
:重新分配内存free()
:释放动态分配的内存
12. 程序结构
一个完整的C程序通常包括以下部分:
#include <stdio.h> // 包含头文件
// 函数声明
int add(int a, int b);
int main() {
int result = add(3, 5);
printf("Result: %d\n", result);
return 0;
}
// 函数定义
int add(int a, int b) {
return a + b;
}
学习建议
多写代码:通过实际编程练习巩固知识。
阅读经典书籍:如《C程序设计语言》(K&R)。
理解指针:指针是C语言的核心概念,理解指针可以更好地掌握C语言。
实践项目:通过实际项目应用所学知识。
希望这些基础知识对你有所帮助!如果有具体问题,欢迎随时提问。