电脑网络

c语言数组赋值

346 浏览

c语言数组赋值

1 个回答

a13670109993用户头像
a13670109993 回答于 2024-07-20
已采纳

提问:c语言数组赋值

#include <stdio.h># define N 5void fun(int x[N]){ int m; for(m=N-1;m>=0;m--) scanf("%d",______);}a.&x[++m]b.&x[m+1]c.x+(m++)d.x+m答案说ab是赋值倒了,a【5】、a【4】、a【3】、a【2】、a【1】,正确答案是d,但我感觉也是倒的,求解?!

网友回答:

a不是赋值倒了,而是下标溢出了

对数组int a[5],它只能用a[0],a[1],a[2],a[3],a[4],不能用到a[5]的,这个是常识

因为第一个m=N-1=4

而答案a中,因为是++m,所以第一个是a[5]明显下标输出,且循环是m--,而循环体中是++m死循环了(虽然语法支持,但从不建议在循环中改变循环变量的)

而b同样的下标溢出

c是明显的死循环

只有d是正确的.它与倒置无关的

我来回答

相关问题