正文

C++指针变量作函数参数实例分析2007-05-24 22:29:00

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

分享到:

#include<iostream>  
void   f(char   *a,char   *b)  
{    
 a=b;    
 (*a)++;  
 printf("after   *a++:a=%c ================= \n",*a);  
 printf("after   *a++:b=%c ================= \n",*b);  
}  
void main()  
{  
 char a1='A',a2='a',*p1,*p2;  
 p1=&a1;  
 p2=&a2;  
 f(p1,p2);  
 printf("%c",a1);  
 printf(" %c",a2);  
 printf("\n");
}

运行结果如下:
b  b
A  b
原因如下:
在函数f中形参a得到实参p1的值&a1,形参b得到实参p2的值&a2,而后a=b语句使得a和b同指向了a2,a和b都表示a2的地址。(*a)++将a2的值变为了b,在函数内输出的时候,*a和*b都表示a2的值,所以输出b   b

在主函数中的时候,p1,p2属于单值传递,p1 p2的值不能在函数结束后改变,只能进行实参向形参传数据,形参的值无法传回给实参。所以p1 p2在函数调用后指向依然分别是 a1 a2a1 为A a2在函数中改变了,所以输出A  b

调用函数时不会改变实参指针变量的值,但可以改变实参指针变量所指向变量的值。

阅读(2331) | 评论(0)


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

评论

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