#include<iostream>
using namespace std;
char *p;
void fun(char *p)
{
char *q=new char;
*q='5';
p=q;
}
int main()
{
char b='6';
p=&b;
fun(p);
cout<<*p;
return 0;
}
输出为6;
而
#include<iostream>
using namespace std;
char *p;
void fun(char *p)
{
char *q=new char;
*q='5';
*p='5';
}
int main()
{
char b='6';
p=&b;
fun(p);
cout<<*p;
return 0;
}
输出就为5了?
我觉得这两个程序意思一样啊,请详细点解释给我,谢谢,fun函数里的p指针不是局部变量吗,为什么第2个程序就能改变全局变量p的值啊?
是不是说fun函数中的指针p和main()函数中的指针P不是同一个指针,但是这两个指针指向的地址都是b的地址?