VisualC++を使用しております、初心者です。
下記のコードで実行しますと出力結果として「 1 5 」が表示されてしまいます
私は「 5 5 」が表示される用に書いたつもりでしたので、なぜこうなってしまったのかどなたか教えては頂けませんでしょうか。
宜しくお願い致します。
return 返値2つについて
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: return 返値2つについて
C/C++には1つの戻り値を返す方法しかありません。
もし、2つ以上の値を返したい場合には構造体を使います。
[補足]
偶然、コンマ演算子扱いでコンパイルエラーになっていませんが意図した動作はしていないプログラムです。
「コンマ演算子とは - はてなキーワード」
http://d.hatena.ne.jp/keyword/%A5%B3%A5 ... B%BB%BB%D2
もし、2つ以上の値を返したい場合には構造体を使います。
[補足]
偶然、コンマ演算子扱いでコンパイルエラーになっていませんが意図した動作はしていないプログラムです。
「コンマ演算子とは - はてなキーワード」
http://d.hatena.ne.jp/keyword/%A5%B3%A5 ... B%BB%BB%D2
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: return 返値2つについて
GNU コンパイラーコレクションではコンパイルが通りません:
prog.cpp: In function ‘int foo(int, int*)’:
prog.cpp:7: warning: left-hand operand of comma has no effect
prog.cpp: At global scope:
prog.cpp:10: error: ‘::main’ must return ‘int’
prog.cpp:10: error: second argument of ‘int main(int, int&)’ should be ‘char **’
prog.cpp: In function ‘int main(int, int&)’:
prog.cpp:12: warning: left-hand operand of comma has no effect
prog.cpp: In function ‘int foo(int, int*)’:
prog.cpp:7: warning: left-hand operand of comma has no effect
prog.cpp: At global scope:
prog.cpp:10: error: ‘::main’ must return ‘int’
prog.cpp:10: error: second argument of ‘int main(int, int&)’ should be ‘char **’
prog.cpp: In function ‘int main(int, int&)’:
prog.cpp:12: warning: left-hand operand of comma has no effect
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: return 返値2つについて
たしかにあちこちにやばい記述がありますね。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
doku
Re: return 返値2つについて
申し訳ありません、返信操作ミスをしていたようです。
softya(ソフト屋)様、naohiro19様、ありがとうございました。
問題解決に向け構造体について勉強していきたいと思います。
softya(ソフト屋)様、naohiro19様、ありがとうございました。
問題解決に向け構造体について勉強していきたいと思います。