C语言二维数组详解与指针操作

需积分: 9 0 下载量 21 浏览量 更新于2024-07-14 收藏 1.48MB PPT 举报
"C语言知识回顾,包括二维数组、数据类型、结构体和共用体的概念及应用。" 在C语言中,二维数组是一种常见的数据结构,它允许我们存储和操作多行多列的数据。例如,`int a[3][4]`定义了一个3行4列的二维数组,其中`a`是数组名,`a[i]`表示第`i+1`行的子数组,每个子数组又包含4个整数元素。我们可以用下标访问数组中的每一个元素,如`a[0][1]`表示第一行第二列的元素,`a[2][3]`表示第三行第四列的元素。 在C语言中,数据类型是编程的基础,它们决定了变量的内存大小、取值范围以及可执行的操作。基本数据类型包括字符型(char)、整型(int, short, long)、浮点型(float, double)和枚举型(enum)。此外,还有构造类型,如数组、结构体(struct)和共用体(union)。结构体用于组合不同类型的数据,定义了一个新的数据类型,而共用体则允许多种类型的数据共享同一块内存空间。 结构体的定义使用`struct`关键字,例如: ```c struct student { int num; char name[20]; char sex; int age; float score; char addr[30]; }; ``` 这里定义了一个名为`student`的结构体类型,包含了学生的编号、姓名、性别、年龄、分数和地址等信息。结构体类型本身并不分配内存,只有当创建结构体变量时才会分配内存。 共用体的定义类似,但所有成员共享同一块内存: ```c union data { int i; char ch; float f; }; ``` 这意味着在任何时刻,共用体变量只能存储其中一个成员的值。例如,如果`i`被赋值,那么`ch`和`f`的值将被覆盖。 枚举类型`enum`允许我们创建一组命名的整数常量,例如: ```c enum Color {Red, Green, Blue}; ``` 这定义了三个整数常量Red、Green和Blue,它们通常从0开始自动赋值。 指针是C语言的另一个重要概念,它指向内存中的特定位置。例如,`a`是一个二维数组的指针,`a+1`指向数组的下一行,`*(a+0)+1`则访问第一行的第二个元素。指针与数组的关系使得我们可以灵活地遍历和操作数据。 内存管理在C语言中至关重要,包括动态内存分配和释放,比如使用`malloc()`和`free()`函数。 二维数组、数据类型、结构体、共用体和指针是C语言中的核心概念,理解并熟练运用这些知识对于编写高效且可靠的C程序至关重要。