44问答网
所有问题
#include <stdio.h> int f(int a) { int b=0; static int c=3; a=c++,b++; return a; } void main() { int
a在第一次循环后不会变成3吗?为啥K还是等于5?不等于4
举报该问题
推荐答案 推荐于2018-05-10
#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.....
}
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://44.wendadaohang.com/zd/6GZ3YDRVZ.html
其他回答
第1个回答 2011-09-18
static关键字 只会将变量初始化一次,下次再调到的时候不进行初始化,所以每调用一次函数c都会加1
第2个回答 2011-09-18
首先,你要注意形参和实参的区别,自己看书好好看看区别,还有循环体中静态变量static只初始化一次,这个要注意
相似回答
#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的值是...
...a)
{
int
b=0;
static
int
c=3;
a=c++,b++;
return
(a);
} ma...
答:
首先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=...
...
int
a)
{
int
b=0;
static
int
c=3;
a=(c++,b++
); return (a...
答:
a=(c++,b++);
由于(c++,b++)中用了
逗号,
逗号作为运算符时返回最后的表达式值,所以这句相当于a=b++,由于++在后,所以这又相当于
a=b;
所以返回0
#include
"
stdio.h
" int
f(int
a)
{
int
b=0;
static
int
c=3;
b++
...
答:
include
"
stdio.h
" int
f(int
a)
{int
b=0;
static
int
c=3;
b++;
c++
; return a+b+c; } main() {int
a=
2,i; for(i=10;i<13;i++) printf("%4d",f(a));}运行程序后,输出 7 8 9在每次调用f()函数时,b会每次都赋初值为0,然后再加1;而c是“静态变量”,...
大家正在搜
include iostream
c语言include stdio
int main(void)
int main(void)含义
visual studio
iostream和stdio
includestdio
void main和int的区别
visualstudio
相关问题
设有以下函数: f ( int a){ int b=0;st...
#include <stdio.h> int fun(int...
#include(stdio.h); int main() ...
#include <stdio.h> int fun(int...
int f(int a) {int b=0; static ...
fun(int a) {int b=0; static in...
设有以下函数: #include <stdio.h> int...
f(a) int a; {auto int b=0; sta...