gpt4 book ai didi

c++ - 在 C++/C 中通过引用传递

转载 作者:太空宇宙 更新时间:2023-11-04 05:10:39 25 4
gpt4 key购买 nike

#include<stdio.h>

void sq(int &b) {
b=b+12;
}

void main() {

int a=5;
sq(a);
printf("%d",a);

}

在上面的 c 程序中,它不起作用,但在 c++ 中同样有效,即

#include<iostream>

void sq(int &b) {
b=b+12;
}

int main() {

int a=5;
sq(a);
std::cout<<a;

}

变量在 C++ 中的传递方式有区别吗??为什么它在 C++ 中有效?上面的代码在 C++ 中是通过引用传递的吗?

最佳答案

C 和 C++ 是不同的语言。 C 没有引用。

如果你想在 C 中使用引用语义,那么使用指针:

void sq(int * b) {      // Pass by pointer
*b = *b + 12; // Dereference the pointer to get the value
}

int main() { // Both languages require a return type of int
int a = 5;
sq(&a); // Pass a pointer to a
printf("%d\n", a);
return 0; // C used to require this, while C++ doesn't
// if you're compiling as C99, you can leave it out
}

关于c++ - 在 C++/C 中通过引用传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12187198/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com