<分区>
假设我有以下功能:
char* allocateMemory()
{
char str[20] = "Hello world.";
return str;
}
int* another()
{
int x = 5;
return &x;
}
int _tmain(int argc, _TCHAR* argv[])
{
char* pString = allocateMemory();
printf("%s\n", pString);
int* blah = another();
printf("%d %d \n", blah, *blah);
return 0;
}
第一个 printf 打印随机值,因为 str 是局部范围。
第二个 printf 打印正确的值,blah = blah 的地址,*blah = 5
为什么局部作用域只影响处理数组的 allocateMemory,而不影响整数?
为什么第一个 printf(返回 char* )打印随机值并受局部作用域影响,但第二个(返回 int* )不受影响?