C语言函数传参时是不是不能在形参列表里不能有&符号?

比如说下面是一个函数,通过形参传入值,是不是不能如下定义:int fun( int &x); 好像这样编译器是不能通过的,但是如果不能,为什么那本数据结构书上常出现这中情况?

第1个回答  2014-07-10
int fun(int &x)是C++上的常用形式,表示参数是一个引用;C上传址的话是 int fun(int * x),表示传入的是一个指针变量,可以通过指针修改所指向的内容。具体那本数据结构书上究竟怎么讲的希望贴出来个例子看一看。
第2个回答  2014-07-10
编译可以通过吧。 在参数表里用了'&',表示是“引用” 相当于给给主函数里的a取了个别名x x和a用的是同一块内存区域。当你对x的内存空间操作时,也就是在对a内存空间操作,所以值会改变。
满意请采纳本回答被提问者采纳

C语言函数传参时是不是不能在形参列表里不能有&符号?
int fun(int &x)是C++上的常用形式,表示参数是一个引用;C上传址的话是 int fun(int * x),表示传入的是一个指针变量,可以通过指针修改所指向的内容。具体那本数据结构书上究竟怎么讲的希望贴出来个例子看一看。

C中给变量赋值时,用scanf为什么变量前面要加&呢??
&作为单目运算符是表示取变量的地址。在C语言中,函数参数进行的都是值传递。也就是说仅仅传递参数值。所以,C语言中把函数参数成为形式参数,简称形参。scanf函数,是需要改变变量值的,所以只好传递变量地址了。这也是C语言的一种特征吧,就是指针。

数据结构 C语言 中参数传递的*与&用法
&,在c++中作为引用形参,c中是不能这样用的,数据结构中使用的类c写的,为了保持兼容性就是用了引用形参!!!**,是用的c中的双指针的问题,就是说指向指针的指针,即指针的内容在函数中可以被改变,如果用单指针指针的话,对指针的改变不会被带出函数!!这一点是难点,我以前也在这而迷惑了...

c++中 & 符号的引用用法。
(2)使用引用传递函数的参数,在内存中并没有产生实参的副本,它是直接对实参操作;而使用一般变量传递函数的参数,当发生函数调用时,需要给形参分配存储单元,形参变量是实参变量的副本;如果传递的是对象,还将调用拷贝构造函数。因此,当参数传递的数据较大时,用引用比用一般变量传递参数的效率和所占空间都好。 (3)使用...

c语言数据结构L与&L?
变量前有&,这里的形参L是引用类型,属于引用调用,引用是C++里的东西,不是C的 简单的说这里的形参L不再是实参的副本,而就是实参本身,在函数中对形参L做的任何操作都会反应在实参上 这里的L不是引用类型,标准的传值调用,形参L就是调用时实参的副本,所以在函数中对L的操作不会反应到实参上 ...

1:C语言中调用函数时,到底什么时候用&T,什么时候用T?(类似于& ,*也是...
此处的T就是指向BitNode的一个指针。说白了程序中凡是用BiTree定义的,都可以用BitNode*来替换。对于初始化函数InitBiTree。他的参数为一个指向BiTree的指针。函数体应该错了吧。应该是*T=NULL;主函数调用该函数时,把主函数用T的地址传递给了形参T。即,实参是&T。想想看,如果我们改变T里面的值(...

这里“&”是什么意思,取地址,引用,位与?谁给好好解释一下,不会吝惜给...
这个是引用的作用.在形参里带&的符号都是引用,如果参数要地址的话,会用*号的.那才说明了它需要地址.在参数列表里只有声明和默认值也就是赋值号,不会有位与操作的.这里“&”是什么意思,取地址,引用,位与?谁给好好解释一下,不会吝惜给加分的 悬赏分:30 - 离问题结束还有 12 天 0 小时 ...

C语言中,数组名作为函数参数,属于什么传递,为什么?
C语言中,数组名作为函数参数,属于数组参数传递。在VB6.0中,允许使用数组作为实参传递到子过程的形参中,数组传递必须采用地址传递的方式来传递参数。数组型变量名本身只是该数组所占存储空间的首地址,函数调用时,系统不会为形参分配数组存储空间,而是仅仅分配一个存放数组地址(第一个元素地址)的存储...

C语言main主函数带参数是做什么用的
在调用可执行程序时,可以通过main函数的参数将命令行的调用参数传递给main函数。一个c程序有且仅有一个main函数,任何一个c程序总是从main函数开始执行,main函数后面的一对圆括号不能省略。具体形式如下:main(){ }被大括号{ }括起来的内容称为main函数的函数体,这...

如何理解C语言函数参数传递调用的原则一一对应?
3 个形参,分别是 `int a`、`float b` 和 `char c`。在 `main` 函数中调用 `example_function` 函数时,传入了对应类型和个数的实参 `num`、`value` 和 `letter`。这样,实参与形参就一一对应起来了。希望能够清楚地理解 C 语言函数参数传递的原则一一对应!如果还有其他问题,请随时提问。

相似回答