第12章 指针与数组.ppt

第12章指针与数组重点讲义

处理多维数组的列 二维数组a中第i列元素清零: int a[NUM_ROWS][NUM_COLS], (*p)[NUM_COLS], i; … for (p = a; p a+NUM_ROWS; p++) (*p)[i] = 0; * p 用多维数组名作为指针 查找数组a[NUM_ROWS][NUM_COLS]最大元素: int find_largest(int a[], int n){ int i, max = a[0]; for (i = 1; i n; i++) if (a[i] max) max = a[i]; return max; } 调用: largest = find_largest(a, NUM_ROWS * NUM_COLS); /* WRONG */ a类型: int(*)[NUM_COLS] 而find_largest希望接受是int * * 用多维数组名作为指针 正确调用: largest = find_largest(a[0], NUM_ROWS * NUM_COLS); a[0]指向a[0][0](类型int *) 结论:以数组为形参的函数,本质上以类型相同的指针来处理 * 指针和变长数组 (C99) 指针可以指向变长数组 (VLAs)中的元素 常规的指针变量可用于指向一维变长数组中的元素 void

文档评论(0)

1亿VIP精品文档

相关文档