函数参数中定义的是引用参数, 但是显示只能获得指针, 想将这个指针传给这个参数要如何做
时间: 2024-09-20 19:08:16 浏览: 27
如果你想要将一个引用作为函数参数并实现在某个地方获取这个引用的实际对象,通常需要这样做:
1. **C++**: C++中,你可以直接传递引用,因为函数参数默认情况下是按值传递的。如果你想让函数修改原对象,你需要明确地声明为引用(`&`),例如:
```cpp
void functionThatUsesReference(int &refParam) {
refParam += 10; // 这里可以直接操作refParam,它实际上是原对象的引用
}
int main() {
int value = 5;
functionThatUsesReference(value); // 直接传递value到函数
std::cout << value; // 输出:15,表明引用被修改了
return 0;
}
```
当你在函数内部看到的是`int *`, 那是因为函数可能返回了一个指向原始变量的指针,而不是引用。
2. **C#**: 在C#中,你同样可以传递引用类型参数,比如`ref`关键字。如果函数期望改变实际对象,应使用`ref`或`out`关键字:
```csharp
public void FunctionUsingRef(ref int refParam) {
refParam += 10; // 此处也能修改refParam所引用的对象
}
static void Main() {
int value = 5;
FunctionUsingRef(ref value);
Console.WriteLine(value); // 输出:15,证明了引用被修改了
}
```
记住,只有当函数声明为修改输入参数的时候,才能真正“传递”引用。否则,它会创建一个新的副本,并对副本进行操作。
阅读全文