C语言有引用传递吗

Python016

C语言有引用传递吗,第1张

c语言没有引用传递,只有c++有,c语言中函数参数总是通过值传递,可以通过显示传递指针值模拟引用传递,而直接用&的引用传递会报错,你那程序把源文件改成cpp文件应该能用,至于严老师的只是伪代码,提供一个程序运行结构而已,大体按照c语言编写,有一部分是c++的东西

在C语言中其实没有引用传参,都是值传参。即传递的都是实参的副本

如下示例,

//交换两个参数的值,值传参

void swap(int x, int y)

{

int temp = x

x = y

y = temp

}

int a = 2, b =1

swap(a,b)//a,b的值不会改变,因为改变的是实参a,b的副本。

另一个示例:

//所谓的“引用传参”,交换两个数值

void swap(int *x, int *y)

{

int temp = *x

*x = *y

*y = tem

}

int a =2, b = 1

swap(&a, &b)//a,b的值改变

其实这里引用传参,传递的也是参数的副本,只是这个副本是变量a,b的地址,所以你在函数swap中你并不能通过参数改变变量a,b的地址,因为它只是一个副本,是值传递。但你得到变量的地址,你就可以访问和改变变量的内容,所以在第二个swap函数中,你可以通过*x和*y来改变实参的值,从而可以达到交换变量a,b值的效果。但这并不是引用传递。只是有这样的说法。推荐你去秒秒学上看看相关的内容,我也是从那上面学来的。