C++笔记_测试指针以及引用的传参情况

之前一直对指针和引用的传参抱有疑问, 今天特地测试下

1.定义的指针不能使用常量进行初始化,想要使用就必须用变量定义然后传递这个变量的引用.

 

2.指针测试.

如果传入的是&a, 函数以*a接收,那么
           函数体内a=传入前的&a=地址
           函数体内*a=传入前的a=真实值
           函数体内&a=地址的地址, 相当于二级指针

3.引用测试.

如果传入的是a, 函数以&a接收,那么
函数体内a=传入前的a=真实值
函数体内&a=传入前的&a=地址

4.再补充几种容易混淆的情况.

如果传入的是p, 函数以*a接收,那么
函数体内a=传入前的p=地址
函数体内*a=传入前的*p=真实值
函数体内&a=地址的地址, 相当于二级指针
传入前的&p=地址的地址, 相当于二级指针


这和直接传入p没有区别

由此可见, 当已经定义了指针*p, 函数以指针*a接收参数时, 无法传入指针*p和引用&p

如果传入的是*p, 函数以&a接收,那么
函数体内&a=传入前的p=地址
函数体内a=传入前的*p=真实值
传入前的&p=地址的地址, 相当于二级指针


可以看出如果是函数使用引用接收, 那么传参只能传递指针

5.结构体.

1.第一种情况.

崩溃:

正确:

2.第二种情况.

错误:

正确:

发布了14 篇原创文章 · 获赞 0 · 访问量 1771

猜你喜欢

转载自blog.csdn.net/qq_34101232/article/details/94133448