int HashInsert(HashTable &H, int key)
{
if (! HashSerch(H, key))
return -1;
else
{
H.elem[key] = key;
H.count++;
return 0;
}
}
为什么要在函数的参数前面加个地址符啊,不加行吗?
答案:3 悬赏:70 手机版
解决时间 2021-04-07 05:07
- 提问者网友:棒棒糖
- 2021-04-07 01:08
最佳答案
- 五星知识达人网友:酒安江南
- 2019-05-02 04:06
这个不是地址符,而是一个引用符,意思是直接作用于传递的对中。如果不加的话,H是传递对象的一个副本。
地址符可以不加的,加不加引用符主要是看你定义HashTable的类和程序的功能。
如果你的HashTable类过于庞大的话,那么要创建一个副本的话内存会消耗过大。这时就用引用,如果HashTable类是一个很小的类,那么就可以不加。
对于你这个函数来说,是将key插入到H.elem中,必须作用在HashTable数据结构的本身才算是插入。插入副本的话在函数结束时将会自动被析构掉,就变的没有意义了。所以必须加地址符。
地址符可以不加的,加不加引用符主要是看你定义HashTable的类和程序的功能。
如果你的HashTable类过于庞大的话,那么要创建一个副本的话内存会消耗过大。这时就用引用,如果HashTable类是一个很小的类,那么就可以不加。
对于你这个函数来说,是将key插入到H.elem中,必须作用在HashTable数据结构的本身才算是插入。插入副本的话在函数结束时将会自动被析构掉,就变的没有意义了。所以必须加地址符。
全部回答
- 1楼网友:归鹤鸣
- 2020-12-12 18:49
你好!
这是引用传递,不加不行。
可以看看引用传递的内容,如果不用引用的话,就需要传指针了。
打字不易,采纳哦!
- 2楼网友:纵马山川剑自提
- 2020-12-26 02:55
函数取得变量的地址,根据地址取得变量的值
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯