注册 登录
编程论坛 C语言论坛

指针 输入10个数 输出时乱七八糟的一堆数

lan797597 发布于 2020-05-13 22:12, 2104 次点击
main(){
 int *p,i,a[10];
 p=a;
for(i=0;i<10;i++)
    {
    *p++=i;
    }
for(i=0;i<10;i++)
    {
    printf("a[%d]=%d\n",i,*p++);
    }
}
4 回复
#2
lan7975972020-05-13 22:13
为什么要在 for(1=0;i<10;i++)里面再加一个p=a
#3
forever742020-05-13 22:29
不是里面,是两个for之间。
你把食堂每个窗口都视察了一遍,决定了吃什么之后难道不得转身回去么?
要是加到里面的话你就只能连续吃第一个窗口了。

[此贴子已经被作者于2020-5-13 22:30编辑过]

#4
纯蓝之刃2020-05-14 08:53
程序代码:
int main()
{
    int *p,i,a[10];
    p=a;
    for(i=0; i<10; i++)
    {
        *p++=i;
    }
    p=a;                    //没把p指针重新指向a[0]
    for(i=0; i<10; i++)
    {
        printf("a[%d]=%d\n",i,*p++);
    }

    return 0;
}
#5
qing_yx2020-05-14 09:25
int main()
{
    int *p,i,a[10];
    p=a;
    for(i=0; i<10; i++)
    {
        *(p+i)=i;  //p指针指向的位置没变,依然指向a的首地址
    }
    for(i=0; i<10; i++)
    {
        printf("a[%d]=%d\n",i,*p++);
    }

    return 0;
}
1