c语言使用指针反顺序读取数组,使用指针,数组不会在C中反向打印

我试图制作一个程序,将10个数字作为输入,并使用C中的指针以相反的顺序输出它们.

#include

#define N 10

int array[N]; //Global variable

int main(void) {

int j;

int i;

printf("Enter 10 numbers: ");

for (i=0;i

scanf("%d",(array+(4*i))); //Works

}

for (j=N-1;j<0;j--) {

printf("%d",array[j]); //Doesn't print, using *(array+j*4) doesn't

//print also

}

printf("\n");

printf("%d\n",*(array)); //Works so scanf works

printf("%d\n",*(array+4)); //Works so scanf works

return 0;

}

我已经尝试为两个for循环创建一个单独的函数,但它仍然不起作用.我想知道为什么这个for循环不打印但是它下面的两个printfs打印出来.

编辑:

我的新代码是

#include

#define N 10

int array[N]; //Global variable

int main(void) {

int j;

int i;

printf("Enter 10 numbers: ");

for (i=0;i

scanf("%d",(array+i)); //Works

}

for (j=N-1;j<0;j--) { //it is supposed to be j>=0 or j>0 WHY

printf("%d",array[j]); //Doesn't print, using *(array+j) doesn't

//print also

}

printf("\n");

printf("%d\n",*(array)); //Works so scanf works

printf("%d\n",*(array+1)); //Works so scanf works

return 0;

}

感谢所有帖子,我现在更好地理解索引在C中是如何工作的,但是除非我改变for循环条件(参见上文),否则printf仍然无法工作.为什么它不适用于初始条件,但适用于后者条件.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值