
No.2ベストアンサー
- 回答日時:
まず、関数とは何らかの処理をして結果を返してくれるものです。
わざとらしい例ですが二つの数を足してその結果を返す関数を見てみましょう。#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 );
}
これらの使い分けはデータの内容や型、処理の内容により適宜必要なものを使ってください。
No.3
- 回答日時:

No.1
- 回答日時:
まずC言語の関数ていうのは、ひとつの何か
の機能を果たしてくれる便利機能です。
そして引数っていうのは返り値を引っ張ってくるための
"もの”です、これは数字という限りではありません。
たとえば数学なんかでf(x)っていうのを
みたことありますよね?
このfってのいうのは関数の名前です。
そしてxというのは引数のことです。
だから例えばf(x)=2x+3と書いていてあったとします。
ここに引数としてx=2を入れると2*2+3=7
つまり7と言う返り値が返ってきます。
C言語だとこんなに簡単には行かないことが
あります。いろいろ引数の型をしないと
いけなかったりします。
return文ついては説明が下手なので
他の方におまかせします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エラー 添字が付けられた値が、...
-
「指定されたキャストは有効で...
-
C言語で分からないところがあり...
-
C言語 エラーの原因がわからな...
-
複数桁10進数の*桁目だけを抽出...
-
std::set<int> で、ある値が何...
-
#define _CRT_SECURE_NO_WARNIN...
-
C言語での引数の省略方法
-
systemの戻り値を取得する方法
-
if と配列の組み合わせ
-
acceptをalarmでタイムアウトさ...
-
(マルチスレッド)_beginthrea...
-
比較回数と交換回数表示について
-
整数データの配列から同じ値の...
-
C言語で三目並べをするプログラ...
-
式は定数値が必要です」という...
-
system関数がうまくいかない
-
リッチテキストへの行ごとの背...
-
HANDLEて何ですか?
-
CStringの配列要素を関数で受け...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数桁10進数の*桁目だけを抽出...
-
「指定されたキャストは有効で...
-
C言語での引数の省略方法
-
#define _CRT_SECURE_NO_WARNIN...
-
C言語 エラーの原因がわからな...
-
ラップ関数とはどんなものですか?
-
【C++】関数ポインタの使い方
-
if と配列の組み合わせ
-
(int *)の意味
-
ColorをRGBで指定する方法
-
未解決の外部シンボル _printf...
-
構造体の勉強中です 合計点の高...
-
商と剰余を同時に求める(C言語)
-
C言語で分からないところがあり...
-
式は定数値が必要です」という...
-
C言語での奇数の和
-
std::set<int> で、ある値が何...
-
課題でつまってます・・・
-
int16_t の _t は何?
-
比較回数と交換回数表示について
おすすめ情報