很有意思的一个问题
#include<stdio.h>#include<windows.h>
void main()
{
int a;
int i,*p;
p=a;
for(i=0;i<10;i++)
scanf("%d",&a);
printf("\n");
for(i=0;i<10;i++)
//{
if(i==0)
printf("%d",*p);
else
printf(" %d",*(p+i));
// }
printf("\n");
system("pause");
}
这个程序是实现数组的输出
但是在scanf("%d",&a);中感觉有错误
1、在数组中数组名表示的是数组的地址嘛,既然是这样那&a明显是错误的,就是等于把一个地址赋值给a了。
2、但是我在运行的时候是没有错误的,但是必须是用空格来间隔数据贴上图
然后是用逗号来间隔的
求各位献计献策啊!感激不尽
scanf("%d",&a);
明知道是a地址还用&取a地址!
for(i=0;i<10;i++)
scanf("%d",&a);
这个for语句里的i在scanf中都没起作用!
应该这么写:
for(i = 0; i < 10; i++)
scanf("%d", &a);
或者
for(i = 0; i < 10; i++)
scanf("%d", a + i);
还有输出的语句不用if...else...了:
for(i = 0; i < 10; i++)
printf("%d ", *(p+i)); for(i=0;i<10;i++)
scanf("%d",&a);
你的数组在输入时一直指向a的首地址,并没有移动 所以结果应该从10开始输出,其他九个元素全为
随机数字
我觉得一点都没意思,我复制你的代码直接运行结果并没出现第一种结果 同意楼上的说法
页:
[1]