[解決済み] int 型の一時的なものから int& 型の非恒等式参照への無効な初期化
2022-02-16 11:56:41
質問
#include<iostream>
using namespace std;
int fun(int &x)
{
return x;
}
int main()
{
cout << fun(10);
return 0;
}
どなたかエラーの原因を教えてください。
ありがとうございます。
解決方法は?
10
は定数なので、定数を変更するという概念自体が奇妙なため、単純に参照を渡すことはできません。
参照は、C言語(およびそれ以前のC++)の厄介な問題の1つである、すべてが値で渡され、変更を呼び出し元に反映させたい場合は、ポインタを渡して、実際の変数を取得するために関数内でそのポインタを参照解除しなければならない(読み取りや書き込みのために)、という事実を解決するために導入されました。
となるものです。 マジで 次のISO C規格に盛り込まれると良いですね。ポインターを使わなければならないのは、Stack Overflowでは評判が良くても、世界のCプログラマーにとってはあまり良いことではありません :-)。
問題の解決方法は簡単です。もしあなたが しない は関数内で変更する必要がないので、普通に渡してください。
int fun (int x) { ... }
もし、あなたが する を変更する必要がある場合は、次のようなものを渡す必要があります。 できる が変更される。
int xyzzy = 10;
cout << fun (xyzzy);
関連
-
[解決済み] error: 'if' の前に unqualified-id を期待した。
-
[解決済み] クラスにデフォルトコンストラクタが存在しない。
-
[解決済み】c++でstd::vectorを返すための効率的な方法
-
[解決済み] gdbを使用してもデバッグシンボルが見つからない
-
[解決済み】C++ - 適切なデフォルトコンストラクタがない [重複]。
-
[解決済み] エラー: 'int' 型の rvalue からの 'int&' 型の非恒等式参照の無効な初期化
-
[解決済み] const int*、const int * const、int const *の違いは何ですか?
-
[解決済み】画像処理。コカ・コーラ缶」認識のためのアルゴリズム改良
-
[解決済み】なぜC++プログラマは'new'の使用を最小限に抑えなければならないのでしょうか?
-
[解決済み】なぜ、constでない参照は一時的なオブジェクトにバインドできないのでしょうか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】coutはstdのメンバではない
-
[解決済み】Visual Studio 2015で「非標準の構文。'&'を使用してメンバーへのポインターを作成します」エラー
-
[解決済み】C-stringを使用すると警告が表示される。"ローカル変数に関連するスタックメモリのアドレスが返される"
-
[解決済み】 != と =! の違いと例(C++の場合)
-
[解決済み] error: 'if' の前に unqualified-id を期待した。
-
[解決済み】エラー:strcpyがこのスコープで宣言されていない
-
[解決済み】オブジェクト引数のない非静的メンバ関数の呼び出し コンパイラーエラー
-
[解決済み] 非静的データメンバの無効な使用
-
[解決済み】Eclipse IDEでC++エラー「nullptrはこのスコープで宣言されていません」が発生する件
-
[解決済み] エラー: 'int' 型の rvalue からの 'int&' 型の非恒等式参照の無効な初期化