自学完C后,就学数据结构(C语言版的)里面的一个链表的例子里面有的个status的用法有点疑惑,望高手解答~~
发布网友
发布时间:2022-04-23 23:36
我来回答
共3个回答
热心网友
时间:2023-10-13 20:40
1 Status可能是一个typedef的类型,它只是代表插入成功与失败,完全可以用bool类型代替,这个对功能无影响;
2 LinkList &L表示L的一个引用,引用作为形参,参数就不是“值传递”了,如在函数中改变形参的值,则被引用的变量值也相应改变。c语言中支持引用;
3 void main()或许可以编译通过,但是不规范不安全,int main()没问题。追问LinkList L 等价于 struct LNode * L
LinkList &L 又等价于什么??
我之前跟过视频学过链表,调用函数的形参都是 ( LinkList L ) 这样一个指向结构体的指针,就可以达到链表的创建、删除、插入、判断空表、表长等功能了。
之后买书看了,LinkList &L ,说引用参数以&打头,晕了!!
自学好痛苦,望高手帮我详细解答~~~~
追答LinkList &L就表示L的引用,不管L是什么,当然,如果L是个指针,那么引不引用都可以达到按地址调用的作用,所以此处不用引用也是正确的啊。
编程不能拘泥于形式,功能相同的程序,算法未必相同,编写方法更是因人而异,书本上的可能是对的,但这不代表你自己认为的就是错误的。
最好的办法,就是实践。
热心网友
时间:2023-10-13 20:40
Status 和status应该是同一个,请注意大小写。
1.status应该是用户自定义的类型,与bool并不等价,除非status的定义是就是bool
2.形参中的&是引用的意思,如果不传递引用,则主函数调用后实参L的值不会随着更改。
3.main函数完整的定义是int __cdecl main(int, char **, char **); 但使用时一般都简化参数和忽略返回值。
热心网友
时间:2023-10-13 20:41
1..下面还有还有代码,我就不打了, 想问下在 ListInsert 函数中是 返回值 OK 或者ERROR 给 i 吗?
>>是赋值给i 是不是少打一部分啊,那个OK ,ERROR 应该有宏定义啊,
在主函数中的 status i 语句中的 status 的作用是否等价于 bool 布尔型,是否可以写成
bool i
>> 不是特指bool型 你可以用typedef将它定义成任何类型 如typedef status int,这样他就代表整形;
2.. 在调用函数中的形参 LinkList &L 和 LinkList L有什么区别, LinkList &L这是不是C++的写法,本人学C
>>LinkList &L表示传递的是L的地址,而LinkList L表示传递的是L,就是一个值传递和地址传递的区别
3.. 在主函数 void main()怎么不是 int main()
>>据说void main()是老版本的写法,现在大多已不再用,现在大部分在用int main(){return 0;}所以没关系,自己以后尽量用int main()就行,不用管void main();
4.. 不知道以上的回答你是否满意!!!追问LinkList L 等价于 struct LNode * L
LinkList &L 又等价于什么??
我之前跟过视频学过链表,调用函数的形参都是 ( LinkList L ) 这样一个指向结构体的指针,就可以达到链表的创建、删除、插入、判断空表、表长等功能了。
之后买书看了,LinkList &L ,说引用参数以&打头,晕了!!
自学好痛苦,望高手帮我详细解答~~~~
追答LinkList &L 又等价于什么??
>>不好意思,是我弄错了,你看看上面,你在上面定义的LinkList是一个指针类型,当LinkList &L中,L表示的是结构体的名,&L表示指向结构体L的地址;而LinkList L中L表示指向结构体的指针。这地方比较绕,你多看看就明白了。这样,当遇到&时它肯定表示的是地址,&后面接着的肯定是变量名。