|

楼主 |
发表于 2023-1-3 16:33:42
|
显示全部楼层
本帖最后由 顶级太阳 于 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后,存储地址没有表。而我的代码两次调用后,存储地址改变了。我很纳闷。
|
|