関数の入出力数の調整は勝手に出来るのでしょうか? – プログラミング – Home

関数の入出力数の調整は勝手に出来るので...
 
通知
すべてクリア

[解決済] 関数の入出力数の調整は勝手に出来るのでしょうか?


KDG
 KDG
(@KDG)
ゲスト
結合: 23年前
投稿: 5
Topic starter  

Kansuu(A ,B, C, D, E);
の場合、出力を決める方法は、return 変数;
と言う形で戻させて、
F = Kansuu(A ,B, C, D, E);
と言う方法もあると思うのですが、
Kansuu(A ,B, C, D, E);
の中でA~Eまでの中で、1~4個までの範囲で
任意に出力としてしまうことも出来るのでしょうか?

入力を1~2個だけ投入しておいて、
出力として3~4個値や文字を拾いたい場合も
たまにはあるのではないかと思って
お聞きしました。


引用未解決
トピックタグ
アイススケーター
 アイススケーター
(@アイススケーター)
ゲスト
結合: 23年前
投稿: 280
 

関数の引数を利用して、出力をしたいということなのでしょうか。

それならば、ポインター渡しで可能なんですが。
失礼ですが、ポインターのことはご存知ですよね。


返信引用
KDG
 KDG
(@KDG)
ゲスト
結合: 23年前
投稿: 5
Topic starter  

構造体で定義して必要な変数を並べておいて、呼んでくるということでしょうか?

そうすると、
Kansuu(A ,B, C, D, E);
と書いて、
AとBが入力、CとDとEを出力を期待するような使い方は、
出力はポインター1発で決めていないということで間違いなのでしょうか?


返信引用
n
 n
(@n)
ゲスト
結合: 23年前
投稿: 159
 

ポインタ渡し:

/* (例)intを指すポインタ型の引数を取り、その実体の値を変える関数*/
void Change( int* pointer_to_a )
{
*pointer_to_a = 1;
}
void Foo()
{
int a = 0; /* この時点でaの値は0。*/

Change( &a ); /* aを指すポインタを渡す。*/

/* Change()を抜けると、aの値は1になっている。*/
}

/*(例2)*/
void Kansuu( int a, int b, int* c, int* d, int* e ) {...}
void Foo2()
{
int a, b;
int c, d, e;
Kansuu( a, b, &c, &d, &e );
}


返信引用
KDG
 KDG
(@KDG)
ゲスト
結合: 23年前
投稿: 5
Topic starter  

レスありがとうございます。

そうすると、
Kansuu(A ,B, C, D, E);
と書いて関数の出力として、C,D,Eを外に取り出そうにもうまくいかない
という理解でいいでしょうか?
(Kansuu(A ,B, &C, &D, &E);


返信引用
PATIO
(@patio)
Famed Member
結合: 4年前
投稿: 2660
 

関数に引数を関数からの出力に使用したい場合、普通はポインタ渡しにすることが多いです。
C++だと参照渡しでも値を返せますが、私の場合は明示的に出力であることを示すために
ポインタ渡しにすることが多いです。

この辺は、C言語では基本的な話なのですが、関数の引数渡しには値渡しと参照渡しと言うのが
あります。C++では参照渡しが別に出来たのでポインタ渡しと言わないと区別出来ないですけれ
ど。

この辺の話はC++やCの入門書にも書いてありますのできちんと読んで理解しておいた方が良い
です。


返信引用
PATIO
(@patio)
Famed Member
結合: 4年前
投稿: 2660
 

>関数に引数を関数からの出力に使用したい場合、

もとい、

関数の引数を関数からの出力に使用したい場合、

でした。


返信引用
KDG
 KDG
(@KDG)
ゲスト
結合: 23年前
投稿: 5
Topic starter  

みなさん。

ありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました