int a=1;int f(int c){static int a=2;c=c+1;return(a++)+c;}mai
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/16 13:52:32
int a=1;int f(int c){static int a=2;c=c+1;return(a++)+c;}main(){int i,k=0;
for(i=0;i
for(i=0;i
首先要明确变量的作用域,以及static函数的意义
int a=1; a是全局变量,其作用域为其之后的所有函数,但若函数中又声明了a变量,则全局变量不再起作用
static int a=2; a是静态变量,该变量作用域为f函数,且对其修改都将保存,所以在f函数内全局变量a不起作用
int a=3,a是局部变量,其作用域仅为for模块内,for执行完后,局部变量a不再有效,所以在main函数中F(a)调用时是用的局部变量a,但for后面的k+=a;则是全局变量a
这样就可以理解了
i=0; 进入for内部语句,k += F(3)所以 k = 0+F(3) = 0+ (a++ + c + 1) = 2+ 3+1 =6
执行完这个后,静态变量a自加,所以a = 3
i=1; 进入for内部语句,k+=F(3),k = 6+F(3) = 6+ (a++ + c + 1) = 6 + (3 + 3 +1) = 13
执行完这个后,静态变量a自加,所以a = 4
i=2,不再进入for内部
执行k+=a;此处的a为全局变量a,所以 k += 1,k =14
输出
int a=1; a是全局变量,其作用域为其之后的所有函数,但若函数中又声明了a变量,则全局变量不再起作用
static int a=2; a是静态变量,该变量作用域为f函数,且对其修改都将保存,所以在f函数内全局变量a不起作用
int a=3,a是局部变量,其作用域仅为for模块内,for执行完后,局部变量a不再有效,所以在main函数中F(a)调用时是用的局部变量a,但for后面的k+=a;则是全局变量a
这样就可以理解了
i=0; 进入for内部语句,k += F(3)所以 k = 0+F(3) = 0+ (a++ + c + 1) = 2+ 3+1 =6
执行完这个后,静态变量a自加,所以a = 3
i=1; 进入for内部语句,k+=F(3),k = 6+F(3) = 6+ (a++ + c + 1) = 6 + (3 + 3 +1) = 13
执行完这个后,静态变量a自加,所以a = 4
i=2,不再进入for内部
执行k+=a;此处的a为全局变量a,所以 k += 1,k =14
输出
int a=1;int f(int c){static int a=2;c=c+1;return(a++)+c;}mai
#include int func(int a,int b) { int c; c=a+b;return c; } ma
int func(int x,int y ) { return(x+y) } main() {int a=1,b=2,c
#include int f1(int a,int b)15,9 { int c; c=b%2; return a+c;
mai() {int *a,*b,*c; a=b=c=(int*)malloc(sizeof(int)); *a=1;*
#include func(int a,int b) {int c; c=a+b; return c;} main()
func(int a,int b) {int c; c=a+b; return(c); } main() {int x=
int a=2; int f(int a); {return (a)++;} main() {int s=0; {int
c语言求阶乘的函数int fac(int n){static int f=1; f=f*n; return(f);}ma
#include int max(int a,int b,int c){\x05a=a>b?a :b ;\x05retu
int& abc(int a,int b,int c){ return a + b + c; 为什么错误
C语言函数最大值问题#include int maxv(int a[],int m){ int maxa,i=1;max