博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
函数的值传递与指针
阅读量:5462 次
发布时间:2019-06-16

本文共 1932 字,大约阅读时间需要 6 分钟。

1.形参只是实参的拷贝本(形参的改变并不能影响实参)

  

1 #include 
2 #include
3 using namespace std; 4 5 void Swap(int a, int b){ 6 int c = a; 7 a = b; 8 b = c; 9 }10 11 int main(){12 int a, b;13 a = 4;14 b = 10;15 cout << a << " " << b << endl;16 Swap(a, b);17 cout << a << " " << b << endl;18 system("pause");19 return 0;20 }

2.指针传递

  指针传递,是把实参所在的地址传递出去,所以那时函数可以直接对实参进行改变

1 #include 
2 #include
3 using namespace std; 4 5 void Swap(int *a, int *b){ 6 int c = *a; 7 *a = *b; 8 *b = c; 9 }10 11 int main(){12 int a, b;13 a = 4;14 b = 10;15 cout << a << " " << b << endl;16 Swap(&a, &b);17 cout << a << " " << b << endl;18 system("pause");19 return 0;20 }

3.引用

1 #include 
2 #include
3 using namespace std; 4 5 void Swap(int &a, int &b){ 6 int c = a; 7 a = b; 8 b = c; 9 }10 11 int main(){12 int a, b;13 a = 4;14 b = 10;15 cout << a << " " << b << endl;16 Swap(a, b);17 cout << a << " " << b << endl;18 system("pause");19 return 0;20 }

  (&在此时不是求地址运算,而是标识作用)

(1)引用不是值,所以她并不占用内存;

(2)引用其实就是变量另外的一个名字 皮皮虾 小屁屁

(3)引用声明方式:

    类型标识符 &引用名=目标变量名

  3.1 类型标识符是指目标变量的类型

  3.2 &在此不是求地址运算,而是标识作用
  3.3 '='后的目标变量名是引用的目标,声明引用时,必须同时对他初始化,否则产生编译错误
(4) 不能建立数组引用,因为数组是一个由若干个单元组成,所以无法建立数组的引用

(5)声明一个引用后,就可以像变量一样可以使用了 ,其值与变量的值同步

  引用的用处 : 作为函数的参数和函数的返回值

(6)引用作为函数参数

  形参就是实参的一个别名!

(7) 引用作为函数的返回值

  7.1 以引用作为返回值,定义函数的时候在函数名前面加&符号
  7.2 用引用返回函数值得 最大好处(就是在内存中不产生被返回值的副本)
  7.3被函数返回的引用只是作为一个临时变量出现,而没有被赋予一个实际的变量

 

--------------------------------------------------------------------------------------------------------------------------

4.指针与引用的区别

指针就是一个变量,和其他类型一样,它是一个占用四个字节的变量(32位机), 与其他变量不同的是就是他变量值是一个地址,指向内存的另外一个地方

而引用则是变量的一个别名

一个指针变量可以指向空,表示他不指向任何变量的地址,但是引用必须在声明的时候就得和一个已经存在的变量相绑定.

 

转载于:https://www.cnblogs.com/ouyang_wsgwz/p/7652818.html

你可能感兴趣的文章
Win8下更改Chrome缓存目录
查看>>
django框架小技巧
查看>>
(八)8-3多线程共享变量
查看>>
Parameter配置文件获取
查看>>
[Operating System] {ud923} P3L1: Scheduling
查看>>
java后端发送http请求使用RestTemplate
查看>>
避免商品超卖的4种方案
查看>>
AtCoder - 1999 Candy Piles
查看>>
Checklist: 2019 05.01 ~ 06.30
查看>>
【最短路】Vijos P1022Victoria的舞会2
查看>>
(原创)大数据时代:基于微软案例数据库数据挖掘知识点总结(Microsoft 线性回归分析算法)...
查看>>
调整Tomcat的并发线程到5000+
查看>>
[Typescript 2] Nullable Types - Avoiding null and undefined Bugs
查看>>
[Javascirpt AST] Babel Plugin -- create new CallExpression
查看>>
_itemmod_strengthen_item
查看>>
UVa 10622 (gcd 分解质因数) Perfect P-th Powers
查看>>
hibernate SQL聚合查询
查看>>
【BZOJ4278】[ONTAK2015]Tasowanie 后缀数组
查看>>
【BZOJ2045】双亲数 莫比乌斯反演
查看>>
【CF772D】Varying Kibibits FWT
查看>>