C语言中我要把一个子函数中的计数m=m+1的值用到另一个子函数的数组score【m】,怎么办?注明,
C语言中我要把一个子函数中的计数m=m+1的值用到另一个子函数的数组score【m】,怎么办?注明,m已经定义了外部变量且不是子函数的形参...
C语言中我要把一个子函数中的计数m=m+1的值用到另一个子函数的数组score【m】,怎么办?注明,m已经定义了外部变量且不是子函数的形参
展开
5个回答
展开全部
把m声明在外面,作为一个全局变量来用,这样就可以在多个子函数里通用了。
比如:
void f1 (void);
void f2 (void);
int main (void)
{
int m = 0; //m initialized to 0
f1 ();
f2 ();
return 0;
}
void f1 (void)
{
m = m+1; //m = 1
return;
}
void f2 (void)
{
int score[m]; //m = 1;
return;
}
注意: 这时候, score[m]数组是个临时的,每当 f2() 结束以后,该数组即被释放。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int score[m]是错的。。
这里你使用的是c语言就用malloc吧
int *score = (int *)malloc(m*sizeof(int));
//
中间这段和score[m]用法一样了。。
//
最后退出函数的时候记得free(score);
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果定义的是外部全局变量的话,另一个函数就可以直接引用的!
追问
可是蜗定义在外面的m是变量啊,在子函数里才是计数的值,而score〔m〕是数组,不允许m是变量……
追答
要数组score[m]m是变量m可以是形参啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
声明为全局的变量,可以在任何函数块中使用。无需做形参。
追问
可数组需要的是常量表达式啊我在数组里引用的是变量,所以不能用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询