C程序设计:第五章详解-数组与指针

版权申诉
0 下载量 33 浏览量 更新于2024-07-04 收藏 314KB PDF 举报
"C语言程序设计的第六讲,主要探讨了第五章——数组与指针。本章节深入讲解了数组的定义、初始化、存储方式以及数组名的特性,并通过实例展示了如何查找一维数组中的最大值和最小值。" 在C语言中,数组是一种重要的数据结构,它允许我们存储多个相同类型的元素。数组由多个同类型的数据对象组成,这些对象在内存中是连续存储的。例如,声明一个包含10个整数的数组`int i_a[10];`,或根据常量定义数组长度,如`const int n=34; double d_a[n];`。 数组的大小是固定的,在声明时就需要指定。一旦定义,其大小无法改变。例如,在函数内部,可以声明一个基于传入参数大小的数组,如`void f(int n, int m) { int b[n]; ... }`,但请注意,这样做仅限于局部变量,且在C99标准及以上才被支持。 初始化数组时,可以使用花括号{}来设置初始值。例如,`inta[4]={1,1,2,4};` 或 `int c[]={1,2,3,4,5,6,7,8};`。不过,这样的初始化仅限于定义时,不能用在普通的赋值语句中。如果未提供足够的初始值,未指定的元素会被自动初始化为类型对应的默认值(对于整型通常是0)。错误的初始化示例,如尝试初始化超过数组大小的元素,会导致编译错误。 数组名实际上是指向数组首元素的常量指针,这意味着它不能被赋值。例如,`a`是数组`arr`的地址,`a[0]`则是数组的第一个元素。因此,`sizeof(a)`返回整个数组的大小,而`sizeof(a[0])`返回单个元素的大小。数组元素个数可以通过`sizeof(a) / sizeof(a[0])`计算得出。 在实际编程中,数组的使用非常广泛。例如,寻找数组中的最大值和最小值。以下是一个简单的示例: ```cpp const int SIZE = 15; int main() { int arr[SIZE], i, high, low; for (i = 0; i < SIZE; i++) arr[i] = rand() % 100; // 省略输出数组元素的部分 high = arr[0]; low = arr[0]; for (i = 1; i < SIZE; i++) { if (arr[i] > high) high = arr[i]; else if (arr[i] < low) low = arr[i]; } // 省略输出最高和最低值的部分 } ``` 在这个例子中,数组`arr`首先被填充了随机数,然后通过遍历找到其中的最大值`high`和最小值`low`。 理解C语言中的数组和指针是至关重要的,因为它们是许多复杂数据结构和算法的基础,如动态数组、字符串处理、矩阵操作等。指针将在后续的章节中进一步讨论,它提供了对内存的直接访问,使得我们可以更灵活地操作数据。