函数的形参,什么时候该用指针?什么时候该用引用?

时间:2020-12-20 16:06:38
函数的形参,分别应该在什么时候使用指针、引用?
这两者各有什么优点以及缺点啊?
(在做习题时遇上的,但自己不知道应该怎么回答,感觉自己没办法说清楚~~)

9 个解决方案

#1


能用引用,还是别用指针。
一般地:对象用引用,内置类型用指针。

#2


引用楼主 raining_0104 的帖子:
函数的形参,分别应该在什么时候使用指针、引用? 
这两者各有什么优点以及缺点啊? 
(在做习题时遇上的,但自己不知道应该怎么回答,感觉自己没办法说清楚~~)

那个习题真无聊。这个东西你不需要形参接受副本就引用啊。
传数据的指针也可以,这也可以归纳出东西出来。无语。

#3


引用在内存中不用再申请新拷贝空间,直接调用。可以说是省空间又省时间。
指针的话就是省空间但不省时间,形参与实参之间还有一个赋值过程。

#4


引用 1 楼 Loaden 的回复:
能用引用,还是别用指针。
一般地:对象用引用,内置类型用指针。

可以说说具体一点吗?指针不是也可以指向对象么?谢谢了!!

#5


使用引用的理由有二:
  1。希望能直接对所传入的对象进行修改;2。降低复制大型对象的负担。
其实使用引用和指针没什么差别,传递的都是对象地址。唯一的差别是使用的方法不同。
二者之间的差异是:
 指针可能(也可能不)指向某个实际对象。使用指针时要先确定其值为非0。而引用不需要的。

#6


引用就是别名;直接操作,效率比较高;

#7


如果这本书上是这样提问,也挺搞笑的了。
关于值传递还是引用传递的问题,在不同场合有很复杂的说法。

#8


1.当需要修改调用函数中的数据对象。
2.传递引用而不是整个数据对象,可以提高效率。 

引用和指针的区别:
相同点
都是地址的概念,指针指向一块内存,内容就是指向内存的地址,而引用就是一块内存的地址。
不同点
1.引用仅是一个别名(不需要分配内存),而指针是一个实体(需要分配内存)。
2.引用定义时必须初始化,且以后不可以改变,而指针不需要。
3.引用不可以为空(NULL),而指针可以为空。
4.引用不可是const类型的,而指针可以是,且const类型的指针和引用更相似。
5.引用无需解引用(*),而指针需要。
6.sizeof(引用)的值是所指向变量的大小,而sizeof(指针)的值是指针的大小(32位)是4。
7.引用和指针的自增(++)和自减(--)的含义不同。

#9


我也觉得2楼说的是,习题是无聊。可是上来问一下还是可以学到不少:
1楼 和 3楼 说的都是我不太了解的,呵呵~
8楼的很详细,谢谢你们了!!

#1


能用引用,还是别用指针。
一般地:对象用引用,内置类型用指针。

#2


引用楼主 raining_0104 的帖子:
函数的形参,分别应该在什么时候使用指针、引用? 
这两者各有什么优点以及缺点啊? 
(在做习题时遇上的,但自己不知道应该怎么回答,感觉自己没办法说清楚~~)

那个习题真无聊。这个东西你不需要形参接受副本就引用啊。
传数据的指针也可以,这也可以归纳出东西出来。无语。

#3


引用在内存中不用再申请新拷贝空间,直接调用。可以说是省空间又省时间。
指针的话就是省空间但不省时间,形参与实参之间还有一个赋值过程。

#4


引用 1 楼 Loaden 的回复:
能用引用,还是别用指针。
一般地:对象用引用,内置类型用指针。

可以说说具体一点吗?指针不是也可以指向对象么?谢谢了!!

#5


使用引用的理由有二:
  1。希望能直接对所传入的对象进行修改;2。降低复制大型对象的负担。
其实使用引用和指针没什么差别,传递的都是对象地址。唯一的差别是使用的方法不同。
二者之间的差异是:
 指针可能(也可能不)指向某个实际对象。使用指针时要先确定其值为非0。而引用不需要的。

#6


引用就是别名;直接操作,效率比较高;

#7


如果这本书上是这样提问,也挺搞笑的了。
关于值传递还是引用传递的问题,在不同场合有很复杂的说法。

#8


1.当需要修改调用函数中的数据对象。
2.传递引用而不是整个数据对象,可以提高效率。 

引用和指针的区别:
相同点
都是地址的概念,指针指向一块内存,内容就是指向内存的地址,而引用就是一块内存的地址。
不同点
1.引用仅是一个别名(不需要分配内存),而指针是一个实体(需要分配内存)。
2.引用定义时必须初始化,且以后不可以改变,而指针不需要。
3.引用不可以为空(NULL),而指针可以为空。
4.引用不可是const类型的,而指针可以是,且const类型的指针和引用更相似。
5.引用无需解引用(*),而指针需要。
6.sizeof(引用)的值是所指向变量的大小,而sizeof(指针)的值是指针的大小(32位)是4。
7.引用和指针的自增(++)和自减(--)的含义不同。

#9


我也觉得2楼说的是,习题是无聊。可是上来问一下还是可以学到不少:
1楼 和 3楼 说的都是我不太了解的,呵呵~
8楼的很详细,谢谢你们了!!