C语言小问题:用指向一维数组的指针变量做变量输入数据不正确

void main()
{
int i, j;
int a[2][3];
int(*p)[3];

p = a;
for (i = 0; i < 2; i++)
    for (j = 0; j < 3; j++)
        scanf_s("%d ", *(p + i) + j);  

//输入时要多输入一个数据,才会返回输入结果,但多输入的那个数据不会被输出
//为啥要多输入一个呢?
p = a;
for (i = 0; i < 2; i++)
{
for (j = 0; j < 3; j++)
printf("%d ", ((p + i) + j));
putchar('\n');
}
}

2个回答

 不知道你的程序要做什么

scanf_s("%d ", *(p + i) + j);  
->
scanf_s("%d", *(p + i) + j); 
去掉空格看看
ghMhg
ghMhg 写的时候没注意多了个空格,去掉就好了。
大约 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问