#include <stdio.h>
int x=1;
f(int a,int b)
{static int x=3;
int c=4,z;
extern y;
z=(++x)+(y++)+(a++)+b+(c++);
return z;
}
extern int y;
main()
{int x=3,w;
w=f(x,y);
printf("%d ",w);
w=f(x,y);
printf("%4d\n",w);
getch();
}
int y=2;
输出结果为 15 18
想问问为什么第二个是18?
还有想问问如果不要了static的话,那么就是 15 17
能不能也解释一下呢?
辛苦了
都运行得了了,哪有错误
再何况这是试题来的
运行结果就是 15 18
#include <stdio.h> int fun(int a) { int b=0; static int c=3...
a=(c++,b++);由于(c++,b++)中用了逗号,逗号作为运算符时返回最后的表达式值,所以这句相当于a=b++,由于++在后,所以这又相当于a=b;所以返回0
#include<stdio.h> main() {int x=3,y=
自增与自减运算符可在变量的左边(前缀)与右边(后缀),运算规则教材上有的,手机打字很麻烦
#include <stdio.h> int f(int a) { int b=0; static int c=3; a=c...
include <stdio.h> int f(int a){ int b=0;static int c=3;\/\/静态变量,只做一次初值赋值,即:第一次调用fun c=3 a=c++,b++; \/\/第一次调用本函数后,c=4,第二次后,c=5,第三次后c=6...return a; \/\/第一次调用本函数后,a=3,二次后,a=4,第三次后a=5...} ...
#include<stdio.h> f(int a) { int b=0; static int c=3; a=c++,b+...
首先f函数中的c是一个静态变量,生命周期是全局的,这里c的3是以初值形式赋予的,所以只有第一次执行f()的时候赋为3,所以执行循环的时候:i=0时,a=2,先取值后++,f(2),a=3;f函数内a=c++,先取值后++,a=3(这个a的作用于在函数f内,不影响外部的a),c=4,最后的a被return给k;k=...
#include <stdio.h> int fun(int a) {int b=0;static int c=3; b++...
答案是789,如果你在输出里面加上一个空格的话就是 7 8 9,完。
#include<stdio.h> void main() { int f(int a, int
p=f(i,++i); 在执行这一步时i编程了3,所以传入函数f时a和b都等于3返回值为0 ++i时i的值就变了。改为p=f(i,i+1)就好了
#include<stdio.h>int f(int a){int b=0;static int c=3;b++;c++;r...
答案 : 7 8 9 过程 此题考查静态局部变量 加了static的静态局部变量在函数调用以后内存没有释放(因为static修饰的局部变量内存分配在全局区(也叫静态区),未使用static关键字修饰的局部变量内存分配在栈区(栈区的生命周期是函数结束之后)),因为c被static关键字修饰,所以下次进入此函数,c的值是...
#include<stdio.h> main() int max(int a,int b); { int zds; zds=a>...
在任何一个C语言的程序中,主函数main()只能写一次的,你这个里面写了两次主函数main()
...#include <stdio.h> int fun(int x) { int y=1;
输出结果:8 10 12 此处每个数字间要留2个空位 注意z的类型是static的,所以z的值是固定的!
#include <stdio.h> void main() { int a=1,b=3,c=5,d=4,x=3; if...
这个就是先判断a<b成立执行判断c>d成立,就执行x=1,所以最后输出1 另外,虚机团上产品团购,超级便宜