C语言复习:二维数组与指针

需积分: 9 0 下载量 58 浏览量 更新于2024-07-14 收藏 1.48MB PPT 举报
"这篇资源主要回顾了C语言中的二维数组和指针变量的相关知识,包括基本概念、数据类型、指针、内存管理和结构体、共用体以及枚举类型。" 在C语言中,二维数组可以被视为一维数组的数组,它是由多个一维数组组成的。例如,在给出的例子中,`int a[3][4]` 是一个3行4列的二维数组,用于存储整数。数组`a`的元素是`int`类型的,每个元素本身又是一个包含4个`int`的数组。通过使用指针变量,我们可以遍历这个二维数组。在for循环中,`p=a[0]`将指针`p`初始化为指向第一行的第一个元素,然后通过`p++`逐步遍历整个数组。 指针是C语言中的核心概念,它可以存储变量的地址。对于二维数组,`p=*a`、`p=&a[0][0]`、`p=*(a+0)` 和 `p=a` 都将指针`p`设置为指向数组`a`的第一个元素的地址,即`a[0][0]`。而`p=(int *)a` 和 `p=a` 同样赋值,因为数组名在C语言中可以被看作指向首元素的指针。这里的 `(int *)` 是类型转换操作,确保`p`指向的是`int`类型的内存地址。 内存管理在C语言中非常重要,通过指针可以动态地分配和释放内存。在例子中,虽然没有涉及到动态内存分配,但指针的使用展示了对内存的直接访问方式。数据类型决定了变量在内存中占用的字节数、取值范围以及允许的操作。 结构体(struct)是构造数据类型,允许我们将不同类型的数据组合成一个单一的实体。例如,`struct student` 定义了一个包含编号、姓名、性别、年龄、分数和地址的结构体类型。结构体类型定义并不分配内存,只有当声明结构体变量时才会分配内存。而在共用体(union)中,所有成员共享同一块内存空间,不同时间只有一个成员的值有效。 枚举(enum)类型则是创建一组整型常量的集合,每个枚举标识符对应一个整数值。例如,`enum Color {Red, Green, Blue}` 创建了三个枚举值,它们默认从0开始递增。可以通过 `enum Color myColor = Red;` 来声明和初始化一个枚举变量。 这篇资源涵盖了C语言中数组、指针、内存管理、结构体、共用体和枚举等基础但重要的概念,是理解和使用C语言进行程序设计的基础。