錯誤解決:error: expected ‘;’, ‘,’ or ‘)’ before ‘&’ token


今天看到一個比較有趣的題目,如下代碼,分析輸出結果

#include <stdio.h>

void num(int &b) { b = 222; return; } int main() { int y = 3; num(y); printf("y = %d\n", y); return 0; }

起初我認為,在C語言中,這樣的操作時改變了y的地址,但是它的值並沒有改變,所以執行main函數后,y的值不變,還是3

經過測試之后發現,這樣的代碼編譯都無法通過,突然恍然大悟,這是c++中的引用,很久沒有用c++,居然連這都忘記了。。。

 

切入主題,編譯這個代碼,會出現這樣的錯誤:error: expected ‘;’, ‘,’ or ‘)’ before ‘&’ token

 

其實在C語言中是不存在引用的,也就是說C語言中&表示的不是引用,而是取地址符。所以編譯器出現的錯誤提示表明&在這里不能這樣用,如何解決這個問題呢?

1、常規的解決方法:用指針來取代引用,在主函數中傳進來地址;

2、將代碼擴展名保存成.cpp文件


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM