指针传递参数的实质是值传递,它传递的是一个地址值,值传递过程中,被调函数的形式参数作为被调函数的局部变量处理。即在栈中开辟了内存空间以存放由主调函数放进来的实参值,从而成为了实参的一个副本。值传递的特点是被调函数对形式参数的任何操作都是作为局部变量进行,不会影响主调函数的实参变量的值。
void func1(int* a)
{
cout << a << endl; //0036F8A4
cout << &a << endl; //0036F7D0
cout << *a << endl; //1000
*a = 200;
}
void func2(int* a)
{
a = NULL;
}
void main()
{
int a = 1000;
cout << &a << endl; //0036F8A4
func1(&a);
cout << a << endl; //200
func2(&a);
cout << a << endl; //200
}
网友评论