按引用和指针传递
这个问题在这里已经有了答案:
在C中没有通过引用的传递,它总是按值传递。
C开发人员可以通过引用来模拟传递,方法是将指针传递给变量,并使用函数中的取消引用对其进行访问。 如下所示,它将变量设置为42
:
static void changeTo42 (int *pXyzzy) {
*pXyzzy = 42;
}
:
int x = 0;
changeTo42 (&x);
与C ++真正的通过引用相比,你不必沉迷于指针(特别是指向指针的指针,即使经验丰富的编码器可能偶尔也会诅咒和咬牙切齿):
static void changeTo42 (int &xyzzy) {
xyzzy = 42;
}
:
int x = 0;
changeTo42 (x);
我会恳求ISO考虑在下一个C标准中增加真实的参考。 不一定是C ++中的全部功能,只是能够解决人们在调用函数时遇到的所有问题。
你可能会想到C ++。 我会在下面介绍。
在C中没有参考的路经。 为了完成同样的功能,你可以发送一个指向变量的指针作为参数,并在方法中取消引用指针,如paxdiablo的注释中所示。
在C ++中,如果您尝试通过引用C样式传递(如前所述),或者尝试传递参数,则可以完成相同的事情:
static void multiply(int& x){
x * 7;
}
void main(){
int x = 4;
multiply(x);
}
该程序结束时的变量x等于28。
链接地址: http://www.djcxy.com/p/20605.html