C++全局变量和成员变量区别在哪?放在函数内部返回是1,放在外部返回100,希望了解的帮我解惑一下

//int m = 100; void* method1() { int m = 100; int* mp = &m; return mp; } int main(int argc, char **argv) {

int* mp;
mp = (int*)method1();
cout << " *mp:" << *mp << endl;

}

先简答回答一下:
1、全局变量和局部变量(成员变量)存储的位置不同;
2、你这里还涉及不用返回局部变量的指针的问题,局部变量在出了作用域后就会自动销毁,在这里是method1函数执行结束后局部变量m会被销毁,本来mp指针是指向m变量对应的内存的,m被销毁就是m对应的内存中的数据被销毁,所以mp指针指向的内存里面数据是什么现在是不确定的,可能是1也可能是其他的数值。 m作为全局变量,只有在程序结束时它对应的内存才会被销毁,所以你用全局变量的时候m对应的内存中数据始终是100,所以mp指向的内存就是m的内存,一直是100,所以输出100

//int m = 100; void* method1() { int m = 100; int* mp = &m; return mp; } int main(int argc, char argv) { int mp; mp = (int)method1(); cout << " *mp:" << *mp << endl; }

问题重新编辑了 帮我看下