C指针越学头越大了

来源:百度知道 编辑:UC知道 时间:2024/05/15 05:16:17
char a[2][3],*p[2]=a;
int i;
for(i=0;i<2;i++)
gets(*p++);
这样合法吗?2次输入的字符串分别给a[1]和a[2]吗?
char a[2][3],*p[2]=a,**pt=p;
int i;
for(i=0;i<2;i++)
gets(*pt++);
这样合法吗?2次输入的字符串分别给a[1]和a[2]吗?
现在如果把*p[2]去掉,改成
char a[2][3],**pt=a;
int i;
for(i=0;i<2;i++)
gets(*pt++);
这样合法吗?2次输入的字符串分别给a[1]和a[2]吗?
如果不合法,是什么原因?我越学越糊涂了

char a[2][3],* p[2];
int i;
for(i=0;i<2;i++)
{
p[i]=a[i];
gets(*p++);
}

你的代码编译能通过吗?就算通过,可移值性也不高,不建议这样定义变量char a[2][3],*p[2]=a; 这种情况,当定义后一个变量的时候, a是什么?

看你这个 我怎么想哭啊
char a[2][3],* p[2];
int i;
for(i=0;i<2;i++)
{
p[i]=a[i];
gets(*p++);
}