关于外部传入指针值的修改的疑问

本人初学数据结构,不明白外部传入指针值的修改的两种方式有什么区别,我只知道抄书上的代码,看不懂这一部分,求解惑,感激不尽。
typedef struct person
{
    char name[40];
    int phonenumber;
    char appellation[10];
}person;//新定义一个结构变量并命名为person
typedef struct psNode
{
    person psinfo;
    struct psNode *next;
}psNode,*Linkelist;//定义一个链表用来链接个人信息
int Initps(Linklist *L)
int Initps(Linklist &L) 

这两种传入方式有什么区别,以及后面要修改值的时候的操作有何不同,看书看不懂了。
求解惑

从功能上来说基本上一样的。
但调用方式不一样,代码写起来引用更方便一些
另外指针类型对参数约束弱一些,引用强一些。