1
能否请您解释一下为什么下面的代码:使用*&参数对函数进行Const关键字。
#include <iostream>
void fun(char * const & x){(*x)++;}
int main(){
char txt[100]="kolokwium";
fun(txt);
std::cout << txt <<"\n";
}
需要对代码const关键字来编译?
如果我删除它,我得到:
invalid initialization of non-const reference of type ‘char*&’ from an rvalue of type ‘char*’
的感谢!
好吧。所以rvalues只能分配给const&types,right(或者const或nonconst &&类型)?你的问题的答案:这将使txt指向表中的下一个字符:“ olokwium”。但是,这与我的问题有什么关系? – hungry91
@ hungry91:因为这是不可能的。你不能修改一个数组变量(即你不能'char txt [100] =“...”; txt ++;')。 –
@hung'txt'不是一个指针,它是一个数组。你可以将它转换为隐式指向第一个元素的指针,但这不是一回事。 – Yakk