c语言,调用函数,局部变量。。
答案:2 悬赏:70
解决时间 2021-01-30 16:32
- 提问者网友:枫涩帘淞幕雨
- 2021-01-30 10:26
#include
int fun(int score[],int m,int below[])
{
float sum=0.0,meanvalue;
int i,j;
for(i=0;i {
sum=sum+score[i];
}
meanvalue=sum/m;
for(i=0,j=0;i if(score[i] {
below[j]=score[i];
j++;
}
return j;
}
void main()
{
int i,n,below[9];
int score[9]={10,20,30,40,50,60,70,80,90};
n=fun(score,9,below);
printf("\nbelow the average are:");
for(i=0;i printf("%4d",below[i]);
}
主函数中below数组是如何得到数据的,并以此说明局部变量的值是否绝对不会被其它函数所改变?
最佳答案
- 二级知识专家网友:你好陌生人
- 2021-01-30 11:12
局部变量的值是否绝对不会被其它函数所改变?
这里局部变量的值是不会被函数改变的。
但是这里的below数组为什么会被修改了呢?
因为int fun(int score[],int m,int below[])将below数组的首地址传递进去了。
函数没有修改below的值,只是修改了below所指的地址后面的那一块内存。
只是传进去了数组的地址。
全部回答
- 1楼网友:我颠覆世界
- 2021-01-30 12:12
void main()
{
int a[1024]={0.0};//在栈里
processing();
//processing()中的int b[1024]被回收了,因为int b没有在作用域中具有生命周期了
}
//程序在此运行结束,int a[1024]={0.0};也被回收
void processing(void)
{
int b[1024]={0.0};//也在栈里
}
我要举报
大家都在看
推荐资讯