C语言函数之间必须要传参吗,像我这样一开始把参数定义在开头对不对?
#include<stdio.h>intn,m,a[100],i;intmain(){voidshuru();voidshuchu();inti;scanf("%d%d"...
#include<stdio.h>
int n,m,a[100],i;
int main()
{
void shuru();
void shuchu();
int i;
scanf("%d%d",&n,&m);
shuru();
printf("before:");
for(i=0;i<n;i++)
printf("%d",a[i]);
printf("\n");
shuchu();
return 0;
}
void shuru()
{
int i;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
}
void shuchu()
{
int i,e;
printf("after:");
for(e=n-m;e<n;e++)
printf("%d",*(a+e));
for(i=0;i<n-m;i++)
printf("%d",*(a+i));
printf("\n");
} 展开
int n,m,a[100],i;
int main()
{
void shuru();
void shuchu();
int i;
scanf("%d%d",&n,&m);
shuru();
printf("before:");
for(i=0;i<n;i++)
printf("%d",a[i]);
printf("\n");
shuchu();
return 0;
}
void shuru()
{
int i;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
}
void shuchu()
{
int i,e;
printf("after:");
for(e=n-m;e<n;e++)
printf("%d",*(a+e));
for(i=0;i<n-m;i++)
printf("%d",*(a+i));
printf("\n");
} 展开
3个回答
展开全部
使用全局变量进行数据的传递是可以的。
优点是:很方便调用,因为谁都可以使用它,不用很麻烦的传递参数
缺点是:就是应为谁都可以使用它,大家都可以修改它,可能导致不可预测的错误,也不便于调试,当程序中变量个数较多时,一不小心很容易在无意中修改了全局变量的值,导致查找、纠错麻烦。所以不建议大量使用全局变量。
优点是:很方便调用,因为谁都可以使用它,不用很麻烦的传递参数
缺点是:就是应为谁都可以使用它,大家都可以修改它,可能导致不可预测的错误,也不便于调试,当程序中变量个数较多时,一不小心很容易在无意中修改了全局变量的值,导致查找、纠错麻烦。所以不建议大量使用全局变量。
追问
嗯嗯 谢谢啦
追答
满意请采纳哦。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一般不建议使用全局变量
因为它可以被所有函数访问
有可能被误操作改变它的值
这样使用它进行计算就会得到错误的结果
因为它可以被所有函数访问
有可能被误操作改变它的值
这样使用它进行计算就会得到错误的结果
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
函数的声明最好不要这样,声明函数应该放到主函数的前面。主函数的小面写函数实现!
这样编译时可以通过的!
这样编译时可以通过的!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询