static int j;
int k=0;
void fun1(void)
{
static int i=0; //注释①
i++;
}
void fun2(void)
{
j=0; //注释②
j++;
}
int main()
{
for(k=0; k<10; k++)
{
fun1();
fun2();
}
return 0;
}
问:i=? j=?
解析:
注释①:static int i=0;
这个定义与普通的int i=0不同,加了static后,这个i会存放在静态数据区,只能被初始化一次,在第一次调用fun1()时,创建i并初始化,之后再调用fun1()时,发现这个i已存在,那么这句就会被忽略掉。
注释②:j=0;
这就是普通的赋值,fun2()每次被调用都先将j赋0然后再自加成1。
答案:i=10, j=1。
相关文章
- 03-13C语言:二十五 函数中的static例子
- 03-13C语言:将3*4矩阵中找出行最大,列最小的那个元素。-将低于平均值的人数作为函数返回值,将低于平均分的分数放入below数组中。
- 03-13OpenEuler中C语言中的函数调用测试(选做)
- 03-13C语言——(使用指针)有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数。写一函数实现以上功能,在主函数中输入n个整数和输出调整后的n个数。
- 03-13C语言qsort中的cmp函数定义
- 03-130001. 假定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:除了尾部的*号之外,将字符中的其它的*号全部删除。形参p已指向字符串中最后的一个字母。在编写函数时,不得使用C语言提供
- 03-13C++中的静态函数static
- 03-132.4 OpenEuler中C语言中的函数调用测试
- 03-13OpenEuler中C语言中的函数调用测试
- 03-13C语言基础入门48篇_34_通过指针实现函数交换两个变量的值(内存地址所对应的内存区域的数据交换、解引用就是根据地址对内存中的数据进行操作)