这个sub2函数是啥意思搞不明白

以下程序的正确的运行结果是( )。
#include<stdio.h>
#define MAX 10
int a[MAX],i;
sub2()
{int a[MAX],i,max;
max=5;
for(i=0;i<max;i++) a[i]=i;
}
sub1()
{for(i=0;i<MAX;i++)a[i]=i+i;
}
sub3(int a[])
{ int i;
for(i=0;i<MAX;i++) printf("%d",a[i]);
printf("\n");
}
main()
{printf("\n");
sub1();
sub3(a);
sub2();
sub3(a);
}

A

0 2 4 6 8 10 12 14 16 18 0 1 2 3 4

B

0 1 2 3 4  0 2 4 6 8 10 12 14 16 18

C

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4



D

0 2 4 6 8 10 12 14 16 18

0 2 4 6 8 10 12 14 16 18

全部评论
a[0] = 0; a[1] = 1; ..... a[4] = 4; 因为5不小于max,所以是循环停止,数组为 0 1 2 3 4
点赞 回复 分享
发布于 2020-12-12 16:03
sub1修改的是全局的a数组,sub2修改的是局部的a数组,两次sub3打印的都是全局的a数组
点赞 回复 分享
发布于 2020-12-12 23:05

相关推荐

totoroyyw:千年老妖😂
投递华为等公司10个岗位
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务