
return a, b;
のように2つの引数で値を返せることを最近になり
知りました。ところで以下のような使い方は可能でしょうか?
test( , )という2つの引数が必要な関数にnum()で
return 1,2としてひとつの関数呼び出しで引数2個分に
すると言うようなことです。
#include <stdio.h>
int test( int i, int j){
printf("%d %d",i,j);
}
int num(void){
return 1,2;
}
int main(void){
test( num() );
}
No.3ベストアンサー
- 回答日時:
return文で2つの戻り値を返すことはおそらくできません。
その書き方自体はコンパイルエラーにはなりませんが。おそらくカンマ演算子の効果で
return a,b;
の「a,b」が順番に評価され、結果としてこの式の値がbとなり、bの値が返されているだけだと思います。
ほかの言語ではこのような記述が許されているものもありますが、少なくともCではこの記述は意図したとおりに動いてくれません。
残念ですがポインタや配列等を使って回避するなりしなくてはなりません。
よって質問文のプログラムはtestにひとつしか要素を渡していないことになりエラーとなります。
No.2
- 回答日時:
できません。
C言語でreturn で返せるのは1つだけです。
カンマを使用できるのは、カンマ演算子として複数の式を評価することができるためです。
この場合、最後の式(値)が式の値になります。
return 1,2; なら 2
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 質問です 下記のコードを分かりやすく解説お願いします 初心者です #include ‹stdio.h 3 2022/05/26 22:03
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- C言語・C++・C# C pointer? or... 2 2022/03/29 00:47
- C言語・C++・C# C言語でif文が予想と違う動きをする件について7 4 2023/03/20 00:26
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- C言語・C++・C# c言語でユーザ関数を利用して入力された文字列を反転させるプログラムを作りたいです。 3 2023/01/29 19:47
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# 至急教えてください! プログラミングの問題です! お願いします! 出力2と全く同じ出力をするように、 2 2022/06/22 23:10
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C++/CLIでネイティブの構造体を...
-
テンプレート関数でコンパイル...
-
構造体vectorの入れ子のfillの...
-
DDVによるメッセージの変更
-
分割コンパイル時に構造体....
-
C++のコンストラクタを宣言する...
-
voidについて
-
LNK2019: 未解決の外部シンボル...
-
C++builederでのエラー(atoiを...
-
C言語の課題について
-
プログラムを組んだのにエラー...
-
typedef enumの使い方を教えて...
-
512Lや1024L等の「L」について
-
C++でboolにintの値を代入する...
-
構造体のあるメンバを基準にソ...
-
main.c:7:43: warning: implici...
-
C で、a、b、c が16ビット符号...
-
C言語 宣言した変数になにも代...
-
外部シンボル未解決
-
構造体のvectorを引数として関...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DWORDの実際の型は何でしょうか
-
visualstudio C# テキストボッ...
-
long型の定数の末尾にLを付ける...
-
C++のfor文について
-
C++でboolにintの値を代入する...
-
2重定義って??
-
main.c:7:43: warning: implici...
-
typedef enumの使い方を教えて...
-
プログラムの中で別のmainを呼...
-
変数の型を定義しなかった場合...
-
関数の実体定義にヘッダファイ...
-
ハンドルされていない例外が発...
-
構造体の要素すべてに対する四...
-
C言語のコンパイルエラー
-
DLLでLIBファイルが作成されない
-
sshdログの意味
-
DLLのLPSTR 項目の戻り値の取得...
-
enumについて
-
VC6でlong longでエラー?
-
【#define】 defineで定義した...
おすすめ情報