分享

实参和形参指针做函数参数时,如何改变main函数变量的值

 任凯泽 2016-11-18

//对输入的两个整数按大小顺序输出

代码如下:

#includeusing namespace std;int main(){ void swap(int *p1,int *p2); int *pointer_1,*pointer_2,a,b; cin>>a>>b; pointer_1=&a; pointer_2=&b; if(avoid swap(int *p1,int *p2){ int temp; temp=*p1; *p1=*p2; *p2=temp;}
注释:在用变量作函数参数时,虚实结合是采取单向的‘值传递’只能从实参向形参传递数据,形参值的改变无法传回实参,即实参的值不会因为形参的改变而改变。(指针变量做函数参数时也应遵循这一规则,当然字符数组名做函数参数时除外)这里我想说的是,用指针变量做函数参数时,在函数执行过程中使指针所指向的变量的值发生改变,在函数调用结束后,这些变量值的变化被保留下来,这样就实现了通过调用函数使变量的值发生改变,在主调函数中就使用了这些改变了的值。

然而不能试图通过改变形参指针变量的值而使实参指针变量的值改变。例如这样:

void swap(int *p1,int *p2){ int *temp; temp=p1; p1=p2; p2=temp;}
所以调用函数时不会改变实参指针变量的值,但可以改变实参指针变量所指向变量的值。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多