brave2017 发表于 2017-7-24 18:17:14

一些关于二级的小笔记

#include <stdio.h>

fun(int x,int y)
{
static int m = 0,i = 2;
i+=m+1; m=i+x+y;
return m;
}
main()
{
int j = 1,m = 1,k;
k = fun(j,m);
printf("%d",k);
k = fun(j,m);
printf("%d\n",k);
}
执行后的输出结果是(A)
A.5,11    B.5,5   C.11,11D.11,5
[解析]:声明静态局部变量:函数调用结束时的值,其占用的存储单元不释放,在下次该函数调用时,该变量保留上一次函数调用结束时的值。
本体子函数fun的变量i和m均为静态局部变量,所以第一次调用fun函数,返回m的值为5,第二次再调用fun函数时,i的值为3,m的值已经是5了
,所以执行i+=m+1+i的值为9,m = i + x +y = 9+1+1=11.

小甲鱼 发表于 2017-7-24 18:48:07

不错,记得添加“淘帖”哦~
页: [1]
查看完整版本: 一些关于二级的小笔记