定义一个整型二维数组并初始化,编程求该数组所有元素的和。要求:分别用数组下标法、一级指针法、二级指针法实现。
时间: 2024-03-05 15:52:27 浏览: 101
下面是三种实现方式的代码:
1. 数组下标法:
```c
int main() {
int a[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
int sum = 0;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
sum += a[i][j];
}
}
printf("sum = %d", sum);
return 0;
}
```
2. 一级指针法:
```c
int main() {
int a[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
int* p = &a[0][0];
int sum = 0;
for (int i = 0; i < 12; i++) {
sum += *(p + i);
}
printf("sum = %d", sum);
return 0;
}
```
3. 二级指针法:
```c
int main() {
int a[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
int** p = a;
int sum = 0;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
sum += *(*(p + i) + j);
}
}
printf("sum = %d", sum);
return 0;
}
```
需要注意的是,三种实现方式的本质是相同的,只是访问数组元素的方式不同。数组下标法是最直观的方式,一级指针法是通过指针访问数组元素,二级指针法是通过指针的指针访问数组元素。
阅读全文