转自:http://m.myexception.cn/c/1773757.html
C语言,有没有引用类型?
//a.c
int a=1;
int &b=a;
//b.cc
int a=1;
int &b=a;
问题:
1.gcc a.c
编译不了,出错了。
是不是,C语言没有引用类型?
2.g++ b.cc
编译通过,又是什么原因?
程序是一样内容。不同编译器而已。
------解决思路----------------------
C里没有引用,C++才有。
------解决思路----------------------
引用:
C里没有引用,C++才有。
+1
C用指针可实现C++引用的功能
------解决思路----------------------
“引用”(reference)是c++的一种新的变量类型
------解决思路----------------------
C语言里面没有引用这个东西
可以用指针
c++才有这个呢 帅哥
------解决思路----------------------
"习惯其它语言(特别是 Fortran 语言)的程序员可能会对 C 语言的函数参数传递方式感到
陌生。在 C 语言中,所有函数参数都是“通过值”传递的。也就是说,传递给被调用函数的
参数值存放在临时变量中,而不是存放在原来的变量中。这与其它某些语言是不同的,比如,
Fortran 等语言是“通过引用调用”
,Pascal 则采用 var 参数的方式,在这些语言中,被调用的
函数必须访问原始参数,而不是访问参数的本地副本。
最主要的区别在于,在 C 语言中,被调用函数不能直接修改主调函数中变量的值,而只
能修改其私有的临时副本的值。
传值调用的利大于弊。在被调用函数中,参数可以看作是便于初始化的局部变量,因此
额外使用的变量更少。这样程序可以更紧凑简洁。" ——K&R
答案:C没有引用!C它爹说的,不是我说的
------解决思路----------------------
C语言没有引用,国内的教课书就是按照vc6.0来编的,所以在编程的时候,其实都是写的c++程序,大家都误以为有引用。比如说李春葆的数据结构里面就用到了引用,坑死人,我大一的时候看书上代码,看不懂,后来才发现被坑了,毁人不倦啊。
------解决思路----------------------
c是C文件的扩展名
cc是C++文件的扩展名
C用gcc编译
C++用g++编译
C没有引用
C++有引用
另外数据结构中,都是伪代码,可是坑爹的作者都不指出来,或者作者有指出来,坑爹的LZ都不仔细看。