C++题目不懂 #includeint func(int a,int b){static int m,i=2;i+=m+
来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/09/21 10:53:58
C++题目不懂
#include
int func(int a,int b)
{static int m,i=2;
i+=m+1;
m=i+a+b;
return m;
}
void main(void)
{int k=4,m=1,p;
p=func(k,m);
cout
#include
int func(int a,int b)
{static int m,i=2;
i+=m+1;
m=i+a+b;
return m;
}
void main(void)
{int k=4,m=1,p;
p=func(k,m);
cout
你没有理解的原因在于static int m,i=2;
这句话里面,m没有赋初始值,而m是静态变量,所以默认m=0.
因此第一次执行p=func(k,m);
i=2+(0+1)=3;m=3+4+1=8;输出8;
第二次执行p=func(k,m);
i=3+(8+1)=12,m=12+4+1=17,输出17
再问: 第一次执行函数func,但是函数的反悔值不会改变实参的值,所以第二次执行m不还是1吗,怎么就变成8了呢
再答: 你要明白,静态变量的意思,static int m,i; 意思是说m和i位于程序运行的全局静态变量区,也就是说在程序运行期间,任何使用m,i的语句都共享m,i;所以你第一次执行函数func时,m变成8了,第二次执行前,m还是8。
这句话里面,m没有赋初始值,而m是静态变量,所以默认m=0.
因此第一次执行p=func(k,m);
i=2+(0+1)=3;m=3+4+1=8;输出8;
第二次执行p=func(k,m);
i=3+(8+1)=12,m=12+4+1=17,输出17
再问: 第一次执行函数func,但是函数的反悔值不会改变实参的值,所以第二次执行m不还是1吗,怎么就变成8了呢
再答: 你要明白,静态变量的意思,static int m,i; 意思是说m和i位于程序运行的全局静态变量区,也就是说在程序运行期间,任何使用m,i的语句都共享m,i;所以你第一次执行函数func时,m变成8了,第二次执行前,m还是8。
C++题目不懂 #includeint func(int a,int b){static int m,i=2;i+=m+
#includeint a(int x);int b(int y);int main(){int m,n;n=6;m=a
#include int func(int a,int b) { int c; c=a+b;return c; } ma
class A{int i,j;public:static int x;public:A(int a = 0,int b
fun(int x,int y) {static int m=0,i=2;i+=m+1;m=i+x+y;return m
搞不懂这个题,#include int isprime(int m) { int i; for(i=2;m%i!=0;i
int func(int x,int y ) { return(x+y) } main() {int a=1,b=2,c
#include void func(int b) { int a; a=b;b=10;} void main() {i
#include func(int a,int b) {int c; c=a+b; return c;} main()
#include func(int a,int b){int c; c=a+b;returnc;}main(){intX
C语言函数最大值问题#include int maxv(int a[],int m){ int maxa,i=1;max
func(int a,int b) {int c; c=a+b; return(c); } main() {int x=