对比void Push(LinkStack*S,datatype e)和int Pop(LinkStack*S,datatype&e)为什么第二个有&符号
时间: 2024-03-19 13:41:59 浏览: 58
void Push(LinkStack*S,datatype e)是一个函数,它的作用是在链式栈S的栈顶插入元素e。其中,datatype是元素的数据类型。这个函数是通过指针来实现的,即将元素e插入到链式栈S的栈顶,需要对链式栈S进行修改,因此需要传入链式栈S的指针。
int Pop(LinkStack*S,datatype&e)也是一个函数,它的作用是从链式栈S的栈顶删除一个元素,并将该元素的值赋值给变量e。其中,datatype是元素的数据类型。这个函数也是通过指针来实现的,因为需要对链式栈S进行修改,同时也需要返回该元素的值,因此需要传入链式栈S的指针,并使用变量e的地址来存储该元素的值。因此,在函数定义中,变量e前面有一个&符号,表示传递的是变量e的地址,而不是变量e的值。
相关问题
void InitStack(LinkStack*&S)解释
在 C 语言中,& 是取地址运算符,用于获取一个变量的地址。在函数参数中,使用 & 可以获取函数外部变量的地址,并将其作为参数传递给函数内部,从而在函数内部可以通过该地址来访问函数外部变量。
在函数参数中,LinkStack*& 表示该函数参数是一个 LinkStack 指针类型的引用变量。因此,函数中可以通过 S 来访问传入的 LinkStack 指针所指向的结构体变量,并且可以修改该指针所指向的变量的值。
函数 InitStack(LinkStack*& S) 的作用是初始化一个 LinkStack 指针,使其指向一个新的空栈。函数中通过动态内存分配的方式创建一个新的 LinkStack 结构体变量,并将其地址赋值给传入的 LinkStack 指针变量 S,从而使 S 指向该新的结构体变量。在函数结束时,S 所指向的结构体变量就成为了一个空栈。
int Empty(LinkStack*S) 中*是什么意思
在 C 语言中,* 是指针运算符,用于表示一个变量是指针类型。在函数参数中,使用 * 可以定义一个指向某种类型的指针变量,在函数内部可以通过这个指针来访问函数外部的变量。在函数声明时使用 *,表示参数是一个指针类型,可以在函数内部修改该指针所指向的变量的值。
在函数参数中,*LinkStack表示该函数参数是一个指向 LinkStack 结构体类型的指针变量,可以通过该指针访问 LinkStack 结构体中的成员变量。因此,函数中可以通过 *S 来访问传入的 LinkStack 指针所指向的结构体变量。
阅读全文