变量定义一个奇怪的问题,求解释
[cpp]
#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;
}
定义变量一定要注意初始化,注意清空呀@!
补充:软件开发 , C++ ,