【发布时间】:2020-03-17 02:35:44
【问题描述】:
#include<stdio.h>
#define NUM_ROWS 3
#define NUM_COLS 5
int main(void){
int a[NUM_ROWS][NUM_COLS],(*p)[NUM_COLS], i;
for (p = &a[0],i=0; p < &a[NUM_ROWS]; p++,i++){
(*p)[i]=i;
}
printf("The value of a[0][0] is %d\n",a[0][0]); // I want 0
printf("The value of a[0][1] is %d\n",a[0][1]); // 1
printf("The value of a[0][2] is %d\n",a[0][2]); // 2
printf("The value of a[0][3] is %d\n",a[0][3]); // 3
printf("The value of a[0][4] is %d\n",a[0][4]); // 4
return 0;
}
大家好,我是 C 新手,我想了解如何处理二维数组的列。
我想从第 0 行的列中输出 0、1、2、3、4,但我得到了这些结果
The value of a[0][0] is 0
The value of a[0][1] is 0
The value of a[0][2] is 1
The value of a[0][3] is 0
The value of a[0][4] is -1
我试图找出问题所在,但我没有......
如果有人解释我的代码有什么问题,我将不胜感激。
【问题讨论】:
-
尝试用
int a[NUM_ROWS][NUM_COLS] = {{0}};初始化数组,循环结束后,打印整个数组看看循环做了什么。 -
我做到了,但我只得到了 0 0 0 0 0
-
这不是整个数组。整个数组有 15 个条目。
-
我发布了另一个代码你会在下面看到答案吗?
标签: c arrays pointers multidimensional-array