【C++】指针传递与函数返回详解

指针变量作为参数传递给函数的时候,编译器会将这个指针变量Copy一份,也就说在函数内部使用的这个参数变量,是另外一个指针变量。

从程序的输出结果,可以看出fun()内部指针变量的地址,变成了另外一个数值。不过在fun()内部的这个指针变量所指向的内存位置并没有变化,在函数内部更改该内存位置的数值的话,fun()外部的指针变量a所对应的数值也会被改变。


从程序的输出可以看出,fun()返回的指针变量也是copy了一份到外部的指针变量b,只不过指针变量b指向的内存空间还是原来的内存空间。

总结:

通过上面的两个程序,以及其输出结果可以看出,指针变量在作为参数传递给函数的时候,与正常的非指针变量的传递方式并没有区别,都是copy一份新的变量。只不过不同的指针变量都可以指向同一块内存空间,如此一来只要指针变量指向的内存空间里面的数值更改了,那么传入参数的指针变量所对应的数值也会跟着改变。

同样的道理,函数的返回值是指针变量的也是如此。


灰子做于二零一八年十二月二十九日。

【原创内容,欢迎分享,拒绝转载,谢谢尊重!!!】

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.C和C++的区别?C++的特性?面向对象编程的好处? 答:c++在c的基础上增添类,C是一个结构化语言,它的重...
    杰伦哎呦哎呦阅读 13,263评论 0 45
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,794评论 1 32
  • 指针是C语言中广泛使用的一种数据类型。 运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构; ...
    朱森阅读 8,800评论 3 44
  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy阅读 13,144评论 1 51