鱼C论坛

 找回密码
 立即注册
查看: 2758|回复: 2

函数形参"*"和"&"有什么区别?

[复制链接]
发表于 2018-11-22 21:03:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
现在在学数据结构,不是很理解函数里什么时候应该用&,什么时候用*,什么时候什么都不用;
比如说
#define int ElemType
typedef struct{
      Elemtype *elem;
      int length;
      int  listsize;
}SqList;
void InitList (SqList &L)
{
………………
}


这里为何使用&,什么时候应该用*,或者不写东西呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-11-22 21:40:15 | 显示全部楼层
声明的时候 int *a
* 说明是指针变量

定义的时候
&取地址
*是取值


此处SqList &L(c++ 中的传引用)
void swap(int &x, int &y); //声明的时候告诉编译器,这里接收的是一个地址。

定义
void swap(int &x, int &y)
{
        //使用的时候直接用
        x ^= y;
        y ^= x;
        x ^= y;

}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2019-7-9 15:19:14 | 显示全部楼层
ba21 发表于 2018-11-22 21:40
声明的时候 int *a
* 说明是指针变量

如果是两个**呢,结构体:   void  addperson(struct  Person **contact);
这两个*有一个是取址,有一个取值?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-28 01:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表