c语言题目,麻烦大哥大姐们给我备注详细点!!一定要详细的备注哦!

来源:百度知道 编辑:UC知道 时间:2024/05/21 23:52:38
void func(int *a,int b[ ])
{b[0]=*a+b;}
main()
{int a,b[5];
a=0;b[0]=3;
func(&a,b);printf("%d\n",b[0]);
}
void func(int *a,int b[ ])
{b[0]=*a+6;}
不好意思打错了

void func(int *a,int b[ ])
{b[0]=*a+6;}

是6.。

1楼回不正确!b[ ]在这里是可以传值的,它是指针。

void func(int *a,int b[ ]) //定义两个形参,这个不必过解释
{b[0]=*a+b;} //函数体部分,*a为0,相当于把指针b的地址值赋给b[0]

main()
{
int a,b[5]; //定义一个整形变量a,一个数组b
a=0;b[0]=3; //把0赋给a,3赋给b数组的第一个元素b[0]
func(&a,b);//调用函数func
printf("%d\n",b[0]); //输出b[0]的值 是-60

}

楼主,你代码打错了吧:
{b[0]=*a+b;} 应该是 {b[0]=*a+*b;} 吧?

void func(int *a,int b[ ]) // 把a,b的地址传入涵数.这里的 int b[]也是指针,你可以理解为const int *.
{b[0]=*a+*b;} // 就相当于b[0]=*a+b[0]; 注意这个*a,就等于main涵数里的a

main()
{int a,b[5];
a=0;b[0]=3;
func(&a,b); // 调用涵数. 这里是用&a做参数的,所以在func里*a等于main涵数里的a.而func里的a就应该是main涵数里的&a.
printf("%d\n",b[0]);
}

最后结果应该等于 3,当然前提是你的程序应该是 {b[0]=*a+*b;} 不然编译可能都通不过.

这问题发C语言分类,应该N多人答.不用给200分.

那最后结果B[0]就该是6了.你想问的就是函数参数的问题吧.传数组名实质就是传地址,和用指针是一样的.都改变外面变量的值.

哪里不明白可以直接发消息给我.