| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 10591 人关注过本帖
标题:形参中&和*的区别
只看楼主 加入收藏
hellohe
Rank: 1
等 级:新手上路
帖 子:37
专家分:7
注 册:2018-3-12
结帖率:40%
收藏
 问题点数:0 回复次数:4 
形参中&和*的区别
请问大神们,形参中地址传递用&和*有什么区别
比如int fun(int *P)和int fun(int &p)
搜索更多相关主题的帖子: 形参 区别 地址 int fun 
2018-04-24 11:33
ab1412
Rank: 7Rank: 7Rank: 7
来 自:M78星球
等 级:黑侠
威 望:4
帖 子:103
专家分:537
注 册:2018-3-15
收藏
得分:0 
int*p表示定义一个指针变量,&p就单纯是取p的地址

printf("萌新一枚,请多指教");
2018-04-24 11:41
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9031
专家分:54061
注 册:2011-1-18
收藏
得分:0 
这是C++的内容
前者是指针,后者是引用
2018-04-24 11:56
邹阳
Rank: 6Rank: 6
等 级:侠之大者
威 望:4
帖 子:124
专家分:402
注 册:2015-10-8
收藏
得分:0 
举个例子:
#include<stdio.h>
int ff(int *p){
    int *a=p;
    int b=*a;
//    ......
}
int main(){
  int b=3;
  ff(&b);
//  ......
}

  这是一个伪函数,主要用来说明调用函数的指针传参 *p,根据调用参数的声明,我们知道这个传参指针为一个整型指针传参,也就是说p主要用于传输地址用的。
你在看这里的时候或许会对这个“*”感到特别迷惑,给你大概解释一下:“int *a”中的“*”是表示声明的a是一个整型指针变量,传参p中的“*”也是这样的,只不过他们一个是传参,一个是局部变量罢了。接下来的“int b=*a”中的“*”则是取值的意思了,意思就是取出指针变量a中的值,好的!那么这个a中的值是多少呢?从主函数开始看:主函数中定义一个局部的整数型变量b,这里b被赋值为3,通过调用子函数“ff(&b)”来看,“&b”则表示取了b的地址。好!这是“&”的作用。接下来子函数ff就把b的地址传给了指针传参p。最后举个小例子:快递员B从快递员A的手中接到了快递并送给你。快递员只需要传送快递——“&(取地址)”而不需要拆开快递看看里边是啥,当你收到快递后打开快递——“*(取值)”后拿出东西使用。

[此贴子已经被作者于2018-4-25 11:27编辑过]


I'm a new comer
2018-04-25 11:25
冷月·葬花魂
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2017-12-10
收藏
得分:0 
参数传递方式,前者在函数调用时,用指针来调用,后者实质也是指针在调用,它是以隐式方式传址,不过直接用实参来调用函数
2018-04-25 11:40
快速回复:形参中&和*的区别
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021439 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved