读书人

变量定义一个奇怪的有关问题求解释

发布时间: 2013-03-12 11:19:35 作者: rapoo

变量定义一个奇怪的问题,求解释

#include "stdio.h"#include <string>int add(){int a ;int b = 2;a = a+b;printf("%d\n", a);return 0;}void cat(){char st1[] = "bbbbbbb";char tt[50];strcat(tt, st1);printf("%s\n",tt);}int main(){//循环体内定义在编译的时候只定义一次,空间是同一个空间for (int j=0; j<2; j++){char st1[] = "bbbbbbb";char tt[50];strcat(tt, st1);printf("循环内%s\n",tt);}printf("\n");//地址空间没有变化,但内容清空了,很神奇!???????????????!! for (int i=0; i<3; i++){cat();add();}printf("\n");//出了循环体,地址空间被清空。//对于方法如果不清空,变量是在同一个空间上的。cat();cat();{cat();}printf("\n");//不通作用域同名变量空间不通{char st1[] = "bbbbbbb";char tt[50];strcat(tt, st1);printf("小作用域1%s\n",tt);}{char st1[] = "bbbbbbb";char tt[50];strcat(tt, st1);printf("小作用域2%s\n",tt);}  return 0;}


变量定义一个奇怪的有关问题,求解释

定义变量一定要注意初始化,注意清空呀@!

1楼zhangchao_nwsuaf昨天 14:32
操,尽然碰到你了

读书人网 >编程

热点推荐