社区
C++ 语言
帖子详情
两者究竟有什么区别???
RichRiver
2004-08-16 04:02:26
1。
int a;
func(&a)
{
。。。
}
2.
int *a;
func(a)
{
。。。
}
不好意思,两者究竟有什么区别??
是不是结果都一样????????
...全文
203
18
打赏
收藏
两者究竟有什么区别???
1。 int a; func(&a) { 。。。 } 2. int *a; func(a) { 。。。 } 不好意思,两者究竟有什么区别?? 是不是结果都一样????????
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
18 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
健之
2004-08-17
打赏
举报
回复
简单说,引用就是别名,即同一个东西有不同的名字,因此,当将虚参定义为引用时,在函数中虚参和实参就是同一个东西了,函数中可以对实参进行修改。当然,在实现上其实就是实现了传址调用。而在传统的c语法中,由于参数传递是传值的,函数中的虚参与实参没有关系,若要完成对实参的修改,则只能将虚参定义为指针,从而间接地进行修改。
RichRiver
2004-08-17
打赏
举报
回复
哦,呵呵
其实我就是想问传引用和传参数究竟区别在哪里?有吗?:)
8好意思阿!
mmgold
2004-08-16
打赏
举报
回复
1。
int a;
...
func(&a) //这个&别名,传的是引用
{
...
}
2.
int *a;
...
func(a)
{
...
}
antijpn
2004-08-16
打赏
举报
回复
楼主那个是什么东西函数定义?老式参数表也不是这么用的阿
libbyliugang
2004-08-16
打赏
举报
回复
从fun()角度来看串给fun()的参数没有区别:
反正都是int*型指针fun()只管接收不管是怎么
变成int*的;
malligator
2004-08-16
打赏
举报
回复
我更不明白了!!·#¥%……*
1。
int a;
...
func(&a) // 这是函数定义还是函数调用啊?
{
...
}
2.
int *a;
...
func(a) //这是函数定义还是函数调用啊?
{
...
}
函数定义:
func(int *a)
{
.
.
.
}
函数调用:
func(a);
或者
function(*a);
或者
function(&a)
aganpro
2004-08-16
打赏
举报
回复
最好给出两个func 的声明塞!
健之
2004-08-16
打赏
举报
回复
你再一说我反而不明白了,从你给出地代码看你的func定义的参数应该是一个int *呀。而1你传递了int a的地址,2你直接用int *a作为实参,这两种方士都是符合func的参数定义的。你到底要问什么呢?
RichRiver
2004-08-16
打赏
举报
回复
唉,我图个简单
感觉大家有点跑蹄了
那我改改:)
1。
int a;
...
func(&a)
{
...
}
2.
int *a;
...
func(a)
{
...
}
健之
2004-08-16
打赏
举报
回复
各位仔细点,他写的是
int a;
func(&a) //这里是对a取地址,传递的是指向a的指针
{
。。。
}
int *a;
func(a) //这里由于a被定义为指针,所以没有使用取址符,同样传递给func的是指针
{
。。。
}
所以如果函数定义是正确的话,应该被定义为func(int*)。
而上述两种写法的差别在于,1)直接定义了一个变量a,然后把a的地址传递给func了,在func中可以使用和修改a的值。而2)仅仅定义a为指针,如果没有将a指向某个整数的话,会引起错误的。
sharkhuang
2004-08-16
打赏
举报
回复
a有地址*a没地址
aganpro
2004-08-16
打赏
举报
回复
难道大家都看错了^_^
引用应该是这样的吧:
int a
func(a){
.....
}
它这里是传的&a啊
steel007
2004-08-16
打赏
举报
回复
二者都是传指针,但是还是有点不同:
1.传的是变量a的指针,于是在函数func中可以对a产生影响
2.传的是一个指针变量的值,而此指针变量没有初始化,在func中使用会出现问题~
snow810211
2004-08-16
打赏
举报
回复
引用更容易理解
aganpro
2004-08-16
打赏
举报
回复
倒
看错了哈
都是传指针,没区别:)
doolin
2004-08-16
打赏
举报
回复
引用作为函数参数通常能使代码看起来更直观,比如以下函数:
void swap(int &a,int &b)
{
int temp = a;
b = temp;
a = b;
}
aganpro
2004-08-16
打赏
举报
回复
分特!上面有误!
如果你的函数是两个:
一个是void func(int & a);
一个是void func(int * a);的话
上面的解释没错!
如果两个func都是void func(int * a);的话
上面两者没区别,都是传指针 &是取a 的地址
aganpro
2004-08-16
打赏
举报
回复
传指针和传引用!
在这里传引用的效率要高点
多图表实现员工满意度调查数据分析python
员工满意度是指员工对于工作环境、待遇、职业发展和组织管理等方面的满意程度。它是衡量员工对工作的整体感受和情绪状态的重要指标。
2020届软件工程本科毕业生毕业设计项目.zip
2020届软件工程本科毕业生毕业设计项目
基于stm32平衡小车
平衡小车 基于stm32 平衡小车 基于stm32 平衡小车 基于stm32
c语言火车票订票管理源码.rar
c语言火车票订票管理源码.rar
施耐德PLC例程源码四台水泵的轮换
施耐德PLC例程源码四台水泵的轮换提取方式是百度网盘分享地址
C++ 语言
64,642
社区成员
250,580
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章