正文

指针做形参2010-06-07 20:18:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/manbuyuduan/51314.html

分享到:

void test(int* p)
{
*p = 2;
p = NULL;
}

int main(int argc, char * argv[])
{
int te = 3;
cout<<"te = "<<te<<endl;
int *pTe = &te;
cout<<"*pTe = "<<*pTe <<endl;
cout<<"pTe = "<<pTe <<endl;
test(pTe);
cout<<"After test()\n*pTe = "<<*pTe <<endl;
cout<<"pTe = "<<pTe <<endl;

system("pause");
return 0;
}

输出:

te = 3
*pTe = 3
pTe = 0013FF38
After test()
*pTe = 2
pTe = 0013FF38
Press any key to continue . . .

说明:

函数的形参可以是指针,此时将复制实参指针。与其他非引用类型的形参一样,该类形参的任何改变也仅作用于局部副本。如果函数将新指针赋给形参,主调函数使用的实参指针的值没有改变。

当函数调用的时候,传递给被调用函数一个指针变量p的复制,即原来地址的复制;如果在被调用函数中修改了被指向的对象,即指针所指向的地址处的内容时,由于调用函数中的被复制的指针依然指向这块地址,所以,造成了返回后原指针所指向的对象的值的改变。如果在被调用函数中对指针本身进行任何操作,其实都不会对调用函数中的指针造成任何的修改。

阅读(2879) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册