在下面的代码中,我希望 tmp 字符数组在 f() 返回后被销毁,因此根本不应该打印 x。
但是,在下面的函数中 x 在 main() 中打印,但 for 循环没有打印正确的内容。有人可以解释这种行为。这是输出。
abcdefg a b c d e f g abcdefg ?
k Y 我
#include <iostream>
using namespace std;
char* x;
void f()
{
char tmp[100]= "abcdefg";
x = tmp;
cout << x << endl;
for(int i=0; i < 7; i++)
cout << x[i] << endl;
}
int main()
{
f();
cout << x << endl;
for(int i=0; i < 7; i++)
cout << x[i] << endl;
}