int f(int n); main() { int a=3,s; s=f(a); s=s+f(a); printf("
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/18 02:21:45
int f(int n); main() { int a=3,s; s=f(a); s=s+f(a); printf("%d\n",s); } int f(int n)
{ static int a=1;
n+=a++;
return n;
} 语句n+=a++中的a=3还是a=1?它是静态局部变量,主函数中的a=3是对整个程序起作用吗?
{ static int a=1;
n+=a++;
return n;
} 语句n+=a++中的a=3还是a=1?它是静态局部变量,主函数中的a=3是对整个程序起作用吗?
在s=f(a)的时候;a=1;
static 在编译的时候就分配存储空间一直到程序执行完前再释放
也就是 不释放空间 、、、
所以第一次调用函数执行n+=a++;时 a行加 再进行自增.执行完后空间没有释放,
根据静态局部变量的特点,可以看出它是一种生存期为整个源程序的量.虽然离开定义它的函数后不能使用,但如再次调用定义它的函数时,它又可继续使用,而且保存了前次被调用后留下的值.a=2了.
在执行 s=s+f(a)时 n+=a++;……等于 n+n+a 这时a保留了上次的值为2了;
2)它是静态局部变量,主函数中的a=3是对整个程序起作用吗?
个人觉得不能这么问,因为这个a它并不是什么宏定义啊之类的,所以不存在什么说对整个程序起作用,它的作用范围也就是只能在定义该变量的函数内是使用.
3) 语句n+=a++中的a=3还是a=1?
不知道LZ是不是搞错了?这里的a和主函数中的a并没有什么关系,在不同函数中定义的.
这里的n就是对应着主函数中的a ,函数调用 值的对应关系.
这里的a 就是指int f(int n) 函数定义的a.它定义了a=1.但是随着程序执行a会变(前面解释了)
希望对你有用 ,发现有错联系我
结果是 第一次s为4 后来s为9
static 在编译的时候就分配存储空间一直到程序执行完前再释放
也就是 不释放空间 、、、
所以第一次调用函数执行n+=a++;时 a行加 再进行自增.执行完后空间没有释放,
根据静态局部变量的特点,可以看出它是一种生存期为整个源程序的量.虽然离开定义它的函数后不能使用,但如再次调用定义它的函数时,它又可继续使用,而且保存了前次被调用后留下的值.a=2了.
在执行 s=s+f(a)时 n+=a++;……等于 n+n+a 这时a保留了上次的值为2了;
2)它是静态局部变量,主函数中的a=3是对整个程序起作用吗?
个人觉得不能这么问,因为这个a它并不是什么宏定义啊之类的,所以不存在什么说对整个程序起作用,它的作用范围也就是只能在定义该变量的函数内是使用.
3) 语句n+=a++中的a=3还是a=1?
不知道LZ是不是搞错了?这里的a和主函数中的a并没有什么关系,在不同函数中定义的.
这里的n就是对应着主函数中的a ,函数调用 值的对应关系.
这里的a 就是指int f(int n) 函数定义的a.它定义了a=1.但是随着程序执行a会变(前面解释了)
希望对你有用 ,发现有错联系我
结果是 第一次s为4 后来s为9
int f(int n); main() { int a=3,s; s=f(a); s=s+f(a); printf("
int f(int n); main() { int a=3,s; s=f(a); s=s+f(a); printf(&
int a=2; int f(int a); {return (a)++;} main() {int s=0; {int
#include int f(int n); main() {int a=3,s; s=f(a);s=s+=(a);pr
#define f(x) x*x*x main() { int a=3,s,t; s=f(a+1);t=f((a+1))
main() { int x=2,y=1;float f=9.8,s=10; f=(int)f+x%3*y/(int)s
(i!=p) 求解释main(){ int i,j,p,q,s,a[10]; printf("\n input 10 n
f(int b[ ],int m,int n) {int i,s=0; for (i=m;i
37、有以下程序 int a=2; int f(int *a) {return (*a)++;} main( ) { i
main() { int a,s,max; scanf("%d%d",&a,&s); if(a>s) { max=a }
# include # include int mian () { int m,n,i,s=0; int a[10000
求下列程序执行后的输出结果是 main() { int x='f'; printf("%c \n",'A'+(x-'a'