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