veigara 发表于 2018-11-22 21:03:57

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

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


这里为何使用&,什么时候应该用*,或者不写东西呢?

ba21 发表于 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;

}

小脑斧 发表于 2019-7-9 15:19:14

ba21 发表于 2018-11-22 21:40
声明的时候 int *a
* 说明是指针变量



如果是两个**呢,结构体:   voidaddperson(structPerson **contact);
这两个*有一个是取址,有一个取值?
页: [1]
查看完整版本: 函数形参"*"和"&"有什么区别?