C语言,我这个用指针打印数组元素,怎么打印出来不对啊

img

img


C语言,我这个用指针打印数组元素,怎么打印出来不对啊,如果前面数组我初始化了直接打印就是对的,但是我如果用指针输入了数组元素后再用指针打印就不对了。

*(o+1)=10+i;这个语句,一直在给o+1赋值
for(i=0;i<10;i++)
scanf("%d",o++);
for(i=0;i<10;i++,o++)
printf("%d",*o);
这样是可以的

你在赋值的时候, 一直在给 o+1 赋值, 所以你的输出只有下标是1的地方有值, 其他全是野指针.
赋值可以这样

for(int i =0; i < 10; i++) {
    *(o+i) = 10; // 为每一位赋值
}