本帖最后由 顶级太阳 于 2023-1-3 16:34 编辑
对于你写的这一段代码,我很不理解,每一次重新调用func函数的时候count应该是作为一个局部变量重新定义,这个时候应该是被置0的呀。
另外在做动动手第一个题目的时候,上面这个奇怪的问题又出现了。#include<stdio.h>
void func1(void);
void func2(void);
char string1,string2;
int var1,var2;
int main(void)
{
printf("add of func1:%p\n",&func1);
printf("add of func2:%p\n",&func2);
printf("add of string1:%p\n",&string1);
printf("add of string2:%p\n",&string2);
printf("add of global_var1:%p\n",&var1);
printf("add of golbal_var2:%p\n",&var2);
func1();
func2();
return 0;
}
void func1(void)
{
static int param1,param2;
printf("add of func1_param1:%p\n",¶m1);
printf("add of func1_parma2:%p\n",¶m2);
static int var1,var2;
printf("add of func1_static_var1:%p\n",&var1);
printf("add of func1_static_var2:%p\n",&var2);
}
void func2(void)
{
const int param1,param2;
printf("add of func2_const_param1:%p\n",¶m1);
printf("add of func2_const_param2:%p\n",¶m2);
printf("add of func2_var1:%p\n",&var1);
printf("add of func2_var2:%p\n",&var2);
}
小甲鱼的例子里,在func1里定义了两个参数param1和param2,查询了地址,在func2里将这两个参数const后,存储地址没有表。而我的代码两次调用后,存储地址改变了。我很纳闷。
|