C语言怎样声明一个变量,使得它的作用域为整个函数,以及在该函数内调用的函数?
voidColoring(structMGraph*G){intx[40]=……//数组x[]初始化inti,j,k;intboolmatrix[40][40];k=G-...
void Coloring(struct MGraph *G)
{
int x[40]=…… //数组x[]初始化
int i,j,k;
int boolmatrix[40][40];
k=G->vexnum;
for(i=0;i<k;++i)
for(j=0;j<k;++j)
{
…… //对数组boolmatrix[][]赋值
}
functionk(G,k); //这是一个递归函数
}
怎样修改该程序段,使得数组x[]和boolmatrix[][]的作用域为函数Coloring内部,以及函数functionk的内部。不想把它们作为参数给functionk。 展开
{
int x[40]=…… //数组x[]初始化
int i,j,k;
int boolmatrix[40][40];
k=G->vexnum;
for(i=0;i<k;++i)
for(j=0;j<k;++j)
{
…… //对数组boolmatrix[][]赋值
}
functionk(G,k); //这是一个递归函数
}
怎样修改该程序段,使得数组x[]和boolmatrix[][]的作用域为函数Coloring内部,以及函数functionk的内部。不想把它们作为参数给functionk。 展开
5个回答
展开全部
你可以定义一个全局变量,这个全局变量在哪个函数中都可以使用!
例如:
#include<stdio.h>
int a,b;(全局变量)
void main()
{
int sort( int a, int b);
int max;
scanf("%d%d",&a,&b);
max=sort(a,b);
printf("max=%d",max);
}
int (int a,int b)
{
int t , max_a_b=b;
if(a>b)
{
t=a;
a=b;
b=t;
}
return(max_a_b);
}
这个程序中,定义了全局变量a和b之后,在main函数和sort函数中不用定义a和b,也可以使用!
例如:
#include<stdio.h>
int a,b;(全局变量)
void main()
{
int sort( int a, int b);
int max;
scanf("%d%d",&a,&b);
max=sort(a,b);
printf("max=%d",max);
}
int (int a,int b)
{
int t , max_a_b=b;
if(a>b)
{
t=a;
a=b;
b=t;
}
return(max_a_b);
}
这个程序中,定义了全局变量a和b之后,在main函数和sort函数中不用定义a和b,也可以使用!
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不能只在两个函数内部使用吧,在一个函数内部声明就只能在该函数内部使用。在函数外面声明,则可以在其声明后的任何函数中使用。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那就定义在文件的头上,作为该文件的全局变量啊。 不过我认为全局变量还是少用的好,容易出错,如果能用参数传递,就用参数传递吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个做不到,要么用全局变量
不知道为什么不想传参呢
不知道为什么不想传参呢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
全局函数吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |