...&s)中用了引用,而有的却没用引用,如StackEmpty(s),求高手解释_百度...
发布网友
发布时间:2024-10-24 10:49
我来回答
共1个回答
热心网友
时间:2024-11-09 00:00
你好,这个就是传值和传址的区别啊。c语言里面讲了它们二者的区别。
你可以去复习一下它们的区别
简单的来说,传值不会改变变量的内容,比如StackEmpty(s)中,仅仅是对栈进行是否为空的判断,并不需要对Stack进行任何操作吧(如修改栈的大小,向栈中插入元素等)所以直接采用传值。
而InitStack(&s)中,对栈进行了操作(给栈分配了内存),类似的还有PopStack(&s),PushStac(&s),都对栈操作了,所以必须采用传址方式,相当于保存了操作的结果,如果采用传值方式,就没有“保存”操作结果,相当于没有进行对栈的操作
希望回答帮助到了你!