c语言定义一个4行5列的数组 int num[4][5],通过指针数组int *p_num[4]访问二维数组num,对数组进行赋值1~20,然后再通过数组指针 int (*p)[5]输出二维数组的元素值
时间: 2024-09-18 13:17:13 浏览: 54
C语言——借助指针实现数组元素的逆序.zip
5星 · 资源好评率100%
在C语言中,定义一个4行5列的整型数组`int num[4][5]`意味着它是一个包含16个元素的一维数组,每个元素对应于`num[i][j]`,其中`i`从0到3,`j`从0到4。为了通过指针数组`int *p_num[4]`访问这个二维数组,你需要创建四个指向数组首元素的指针,分别存储每一行的地址。
首先,定义二维数组:
```c
int num[4][5] = {
{0, 0, 0, 0, 0}, // 第一行
{0, 0, 0, 0, 0}, // 第二行
{0, 0, 0, 0, 0}, // 第三行
{0, 0, 0, 0, 0} // 第四行
};
```
然后创建指针数组`p_num`:
```c
int *p_num[4];
for (int i = 0; i < 4; i++) {
p_num[i] = &num[i][0]; // 指向每行的第一个元素
}
```
接着,你可以遍历指针数组,并给数组赋值1~20,这里假设你想填充前20个数字:
```c
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 5 && i * 5 + j < 20; j++) {
num[i][j] = i * 5 + j + 1;
}
}
```
最后,使用指针数组`(*p)[5]`的形式来访问并打印二维数组的元素,注意这里的`(*p)[5]`代表一个指向一维数组的指针,可以用于逐行读取:
```c
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 5; j++) {
printf("%d ", (*p_num + i)[j]); // 输出num[i][j]
}
printf("\n");
}
```
阅读全文