下面这两种引用是一个意思吗,为什么顺序表声明结构体的时候就是sqlist,而链表的时候是*Linklist。还有就是他们调用函数有&符号的时候意思是一样吗,有什么区别?
Sqlist是结构体类型。
1中的&表示引用
第一个2中的 *LinkList 表示LinkList是结构体指针类型,这个指针指向了一个Sqlist类型的变量(或者说LinkList是指向Sqlist结构体类型变量的指针)
第二个2中的 LinkList &L表示L是一个LinkList类型的引用 (结构体指针引用)
c语言基础
你这是c++还是c
引用是属于c++的 c语言只有指针
定义的时候 * 代表某种数据类型的指针 ;
不是定义的时候 * 代表从变量地址取出结果 &表示取变量的地址
&的意思非常多,在不同的地方有不同的含义
比如a&b是算术与,表示a与b进行与运算,此时a和b都会隐式转换为int型进行运算
a&&b是逻辑与,a和b将被转换为bool型进行运算,且有短路特性
在scanf中,变量前面经常要加&,比如scanf("%d",&a),此时&表示取a的地址
在函数的形参中,fun(&L)表示传递的是L的引用,此时在函数内改变L,将会修改实参
-=-=-=
*也有很多种含义,比如乘法,比如定义指针,比如&的相反,取一个地址里保存的值