#include<stdio.h> int main(){ int a[10]={1,2,3,4},i,*p; p=a; for(i=0;i<10;i++) scanf("%d",p++); }
时间: 2023-06-20 11:08:21 浏览: 142
#include <stdio.h>
4星 · 用户满意度95%
这段代码存在一些问题,主要有以下几个:
1. 数组a的长度为4,而循环中却访问了10个元素,可能会导致越界访问。
2. 循环中使用了p++,导致指针p指向了数组a的最后一个元素之后的位置,从而可能访问到未知的内存区域。
3. 循环中没有对输入的值进行赋值给数组a,因此输入的值并没有被保存。
如果想要修正这些问题,可以将代码修改为如下形式:
```c
#include<stdio.h>
int main() {
int a[4]={1,2,3,4},i,*p;
p=a;
for(i=0;i<4;i++) {
scanf("%d",p);
p++;
}
return 0;
}
```
这样就能够正确地读入4个数,并将它们存储到数组a中了。
阅读全文