10 #include<stdio.h>
11 void two_array(int b[][3],int line)
12 {
13 int i = 0;
14 int *p = b[0];
15 for(;p < b + line; p++)
16 {
17 for(i = 0; i < 3; i++)
18 {
19 printf("%4d",*(*p+i));
20 }
21 printf("\n");
22 }
23 }
24 int main(void)
25 {
26 int a[3][3] = {1,2,3,4,5,6,7,8,9};
27 two_array(a,3);
28
29 return 0;
30 }
在two_array函数中,19行显示不对,这是为什么???
#include<stdio.h>
void input_array(int (*b)[3],int line)
{
int (*p)[3] = b;
int i ;
for(;p < *(b+ line); p++)
{
for(i = 0;i < 3; i++)
{
printf("%4d",*(*p+i));
}
printf("\n");
}
}
int main(void)
{
int a[3][3] = {{1,2,3},{4,5,6},{7,8,9}};
input_array(a,3);
return 0;
}
子函数input_array中的b表示什么?
用指针指向一维子数组的形式输出一个二维数组
答案:1 悬赏:60 手机版
解决时间 2021-02-04 19:26
- 提问者网友:捧腹剧
- 2021-02-04 15:28
最佳答案
- 五星知识达人网友:上分大魔王
- 2021-02-04 16:30
#include<stdio.h>
void input_array(int (*b)[3],int line) //b是一个数组指针 指向的类型是 含有3个int型数据的数组
{
int (*p)[3] = b; //p 同上
int i ;
for(;p < *(b+ line); p++) //line 代表这个数组 有几行
{//for里面的括号是中文的 你改过来
for(i = 0;i < 3; i++)//*p代表 一行 也就是一个 含有3个int型数据的数组
{
printf("%4d",*(*p+i)); //*(*p + i)代表 数组中第i个元素
}
printf("\n");
}
}
int main(void)
{
int a[3][3] = {{1,2,3},{4,5,6},{7,8,9}}; //a即3行 3列。。
input_array(a,3);
return 0;
}
void input_array(int (*b)[3],int line) //b是一个数组指针 指向的类型是 含有3个int型数据的数组
{
int (*p)[3] = b; //p 同上
int i ;
for(;p < *(b+ line); p++) //line 代表这个数组 有几行
{//for里面的括号是中文的 你改过来
for(i = 0;i < 3; i++)//*p代表 一行 也就是一个 含有3个int型数据的数组
{
printf("%4d",*(*p+i)); //*(*p + i)代表 数组中第i个元素
}
printf("\n");
}
}
int main(void)
{
int a[3][3] = {{1,2,3},{4,5,6},{7,8,9}}; //a即3行 3列。。
input_array(a,3);
return 0;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯