王道书上的代码并不是完全版的c代码
今天在写王道书上的代码的时候,给我整的有点不会了,注意王道书上,包括课上的代码并不是完整的c语言代码。而是后缀为cpp的c语言代码, 就是说它有一些cpp才可以实现的功能,如传参引用,for循环中出现参数为变量等等。
C++语言是C语言的超集,也就是说,C++语言支持C语言的所有特性和语法。因此,在.cpp后缀的文件中可以写C代码是因为C++编译器兼容C语言的语法和标准库。
但是书上和课程中并没有说,导致我浪费了一点时间。
下面我举例说明一下:
- 传参引用
void insert(sqlist &q){...}
这是cpp写法,在c语言中不存在引用传参
int main(){
sqlist q;
insert(q);
}
void insert(sqlist *q){ ... }
c语言写法,传递指针
int main(){
sqlist q;
insert(&q);
}
综上:如果你想用王道书中的代码实现数据结构,请将代码保存为.cpp的后缀。。我就是脑瘫了,以为是纯c,保存成.c后缀。