C言語関係掲示板

過去ログ

No.202.関数を入出力をポインタを使って書き換える


No.1266

ポインタを使うと・・・?
投稿者---こ-いち(2002/03/16 12:11:17)


こんにちわ。

float f (float a, float b) {return(a+b);}

この関数を入出力をポインタを使って書き換えるとどうなるんですか?
教えてほしいです。 お願いします。

No.1267

Re:ポインタを使うと・・・?
投稿者---ともじ(2002/03/16 18:04:33)


こんにちは。

>float f (float a, float b) {return(a+b);}
>
>この関数を入出力をポインタを使って書き換えるとどうなるんですか?
>教えてほしいです。 お願いします。

そのまますんなりお教えしても構わなかったのですが、もう少し勉強
してみませんか。
本編にポインタを使って複数の戻り値を返す方法が書いてあるのですが、
ここなんか参考になるかもしれません。
ただ、こーいちさんの提示したプログラムはreturnで1個の戻り値を
返していますので、そこのところは注意してください。



No.1272

Re:ポインタを使うと・・・?
投稿者---こ-いち(2002/03/17 13:41:16)


ともじさん、レスありがとうございます。

リンクのところ読んで勉強してみます。
でも、よかったら答えみたいのも教えてもらえませんか?
どうやったら答えにたどりつくか、照らし合わせてみたいんで。
おねがいします。

No.1274

Re:ポインタを使うと・・・?
投稿者---ともじ(2002/03/17 20:44:54)


>リンクのところ読んで勉強してみます。
>でも、よかったら答えみたいのも教えてもらえませんか?
>どうやったら答えにたどりつくか、照らし合わせてみたいんで。
>おねがいします。

最初のプログラムはmainまで示すと、例えば
#include	<stdio.h>

float f (float a, float b) {return(a+b);} 

void main(void)
{
	float x = 10.5;
	float y = 5.5;
	
	printf("%f\n",f(x,y));
}

のようになりますよね

これを入力をポインタを使って書き換えると
#include	<stdio.h>

float f (float *a, float *b) {return(*a+*b);} 

void main(void)
{
	float x = 10.5;
	float y = 5.5;
	
	printf("%f\n",f(&x,&y));
}

になります。

違いがわかりますか。
リンクしたところを読んでみて、わからなかったらまた書き込んでください。

なお、「入出力をポインタを使って書き換える」とありましたが、
「出力」をポインタに書き換えて float *f(・・・); とすると、
ちょっと複雑になります。おそらく入力だけポインタにすれば
用は足りると思いますので入力だけにしてあります。


戻る


「初心者のためのポイント学習C言語」 Last modified:2002.05.26
Copyright(c) 2000-2002 TOMOJI All Rights Reserved