为什么这个以扫描 C 中数组元素的方式的程序在第三行停止并且不执行下一行?


#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[3][4];
for (int i=0;i<3;i++){
for(int j=0;j<4;j++){
printf("a[%d][%d]:",i+1,j+1);
scanf("%d",a[i][j]);
}
}
return 0;
}

程序在第三行停止,不执行下一行

您是否在scanf函数中看到编译器警告:

警告:格式"%d"需要类型为"int *"的参数,但参数 2 的类型为"int">

所以,使用

scanf("%d",&a[i][j]);

而不是

scanf("%d",a[i][j]);

发生这种情况是因为scanf接收到变量的地址(指针(,而不是变量本身。 在变量名称之前添加&将引用其地址

最新更新