当前位置:编程学习 > C/C++ >>

C语言高手帮忙,求输出结果和解题思路

#include <stdio.h> #define MAX 6 int a[MAX],i; void sub1(); void sub2(); void sub3(int a[]); void main() { sub1(); sub3(a); sub2(); sub3(a); } void sub2() { int a[MAX],i,max; max=4; for(i=0;i<max;i++) a[i]=i; } void sub1() { for(i=0;i<MAX;i++) a[i]=i+i; } void sub3(int a[]) { int i; for(i=0;i<MAX;i++) printf("%3d",a[i]); printf("\n"); }
答案:结果:
------------------------------------------
  0  2  4  6  8 10
  0  2  4  6  8 10
------------------------------------------
sub1();操作的是全局变量;
sub2();操作的是局部变量;
也就是说调用sub2();根本不影响全局变量的结果;
于是两次调用sub3(a);的结果是相同的。

上一个:一道C语言问题
下一个:c语言选择题:

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,