プロが教えるわが家の防犯対策術!

今、C言語を初めて勉強してます。

勉強していて、引数と戻り値、return文

についてよくわかりません。

どなたか詳しく素人にもわかるように教えて

頂けないでしょうか?よろしくお願いします。

A 回答 (3件)

まず、関数とは何らかの処理をして結果を返してくれるものです。

わざとらしい例ですが二つの数を足してその結果を返す関数を見てみましょう。

#include <stdio.h>

int add( int hoge, int piyo ){
return hoge + piyo;
}

int main(void){
int data;

data = add( 253, 434 );
printf( "%d", data );

return 0;
}

見てわかると思いますが、引数とは関数内の処理に使うデータです。
このデータは関数を呼び出すときに与えます。

add( 253, 434 )

すると与えられたデータは関数に渡され仮引数と言うものに格納されます。
この例では hoge に 253、piyo に 434 が格納されます。

int add( int hoge, int piyo ){

この仮引数は普通の変数のように使うことが可能なのです。

hoge + piyo

そしてこの結果を戻り値として return 文で返してやります。

return hoge + piyo;

返すとは具体的にどこへ返すのかと言うと呼び出したところへです。
ここでは main 関数内の呼び出し元です。

data = add( 253, 434 );

data と言う変数へは関数によって返された戻り値(関数値とか返却値とかとも言ったりします)が格納されます。つまり 253 と 434 を足した数です。

引数も戻り値も結局はデータです。処理させたいデータが引数で、処理した結果であるデータが戻り値です。

return は呼び出し元へ結果を返すためのものです。


C言語の関数にはいろいろな種類があります。

引数も戻り値もあるもの。

int add( int hoge, int piyo ){
return hoge + piyo;
}

引数はあるが戻り値のないもの。

void add( int hoge, int piyo ){
printf( "%d", hoge + piyo );
}

戻り値はあるが引数のないもの。

#include <stdlib.h>
#include <time.h>

int getRandNum(void){
srand( time( NULL ) );
return rand() % 500;
}

戻り値も引数もないもの。

void print(void){
printf( "%d + %d = %d", 253, 434, 253 + 434 );
}

これらの使い分けはデータの内容や型、処理の内容により適宜必要なものを使ってください。
    • good
    • 2

先日、JAVAで似た質問があって例えを使って説明しました。

参考程度に見てください。

参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=550592
    • good
    • 0

まずC言語の関数ていうのは、ひとつの何か


の機能を果たしてくれる便利機能です。
そして引数っていうのは返り値を引っ張ってくるための
"もの”です、これは数字という限りではありません。
たとえば数学なんかでf(x)っていうのを
みたことありますよね?
このfってのいうのは関数の名前です。
そしてxというのは引数のことです。
だから例えばf(x)=2x+3と書いていてあったとします。
ここに引数としてx=2を入れると2*2+3=7
つまり7と言う返り値が返ってきます。
C言語だとこんなに簡単には行かないことが
あります。いろいろ引数の型をしないと
いけなかったりします。
return文ついては説明が下手なので
他の方におまかせします。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!