gpt4 book ai didi

c++ - 通过引用问题?

转载 作者:太空宇宙 更新时间:2023-11-04 15:32:40 24 4
gpt4 key购买 nike

问题是我试图将数组 char arr[6] = {"1","2",etc.} 传递给一个函数,该函数采用这样的参数 void foo( char* &arr,...) 并且它不起作用。谁能给我解释一下吗?

最佳答案

char arr[6] 是一个数组。

char* &arr 是对指针的(n 左值)引用。

现在,由于参数的类型不正确,因此必须对其进行转换。数组隐式衰减(衰减是一种转换)为指向第一个元素的指针。

但是这个衰减的指针是一个临时的(右值)。非常量左值引用不能引用右值,因此用数组参数调用 foo 是不正确的。


可以创建一个指针变量;可以传递给 foo:

char* ptr = arr;
foo(ptr, ...);

该函数然后可以修改该指针(即使其指向其他一些 char 对象),因为该引用是非常量。


附言。数组的初始化有一些非常错误的地方。 "1""2" 不是 char 对象。

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

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