C语言关于一维数组做实参的问题
#include<stdio.h>voidEvaluate(intiArrayName[10]);voidDisplay(intiArrayName[10]);intma...
#include<stdio.h>void Evaluate(int iArrayName[10]);void Display(int iArrayName[10]);int main(){ int iArray[10]; Evaluate(iArray[10]); Display(iArray[10]); return 0;}void Display(int iArrayName[10]){ int i; for(i=0;i<10;i++) { printf("the member number is%d\n",iArrayName[i]); }}void Evaluate(int iArrayName[10]){ int i; for(i=0;i<10;i++) { iArrayName[i]=i; }}首先,为啥声明和定义函数的时候里面的形参数组的长度,任意修改都不会影响运行结果。声明函数的时候形参去掉整个中括号也不影响运行结果。但是定义的时候去掉中括号就报错了。还有main主函数里面的调用其他两个函数的时候实参传递的iArray[10]不是代表一个元素吗,数组元素做实参传递的不应该是值吗,既然传递的是元素的值那么在void函数体中iArrayName数组的值发生了变化,不是不影上面的实参的吗,为啥实参的值也发生了变化。 我是自学的,然后这些都是我的个人理解,请大佬帮忙纠正~~~
展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询