
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で質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) pythonのプログラムについての質問です。 1 2023/05/26 10:31
- 中学校 中2女子です。私は最近医者を目指したいと考えているのですが、目指す上でいくつか知りたいことがあります 10 2023/05/09 03:43
- 大学受験 今高2で 11月の進研模試で 偏差値数学65 英語50 物理65 化学60くらいしかないですが、 早 5 2022/12/27 20:33
- 高校受験 3ヶ月で偏差値5あげることはできますか? 中3 私は今年の6月に初めて模試を受け偏差値54、2回目の 0 2022/10/26 15:43
- 高校 テスト勉強について 中間テストの結果がかえってきたのですがあまりよくありませんでした。 現代の国語と 2 2023/06/05 00:46
- 大学受験 3浪しようと思うので、アドバイスお願いします。 自分としては結構メンタルきつくて後期でいいから、東京 3 2023/02/13 21:47
- 大学・短大 通信制高校 成績について 1 2022/07/15 12:01
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- 高校受験 中3 9月 模試の結果D判定 夏に受けた模試の結果が第1志望D判定でした。 あと21点でやっと合格圏 3 2022/09/09 23:19
- 大学受験 社会人ですが今年度明治大学法学部を受けたいと思っています。 全統第三回マーク模試は 英語61 リスニ 1 2022/12/05 08:00
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PowerShellがうまくいかない
-
プログラミングの質問です。 #i...
-
ヒープソートを教えてください
-
C言語 エラーの原因がわからな...
-
「指定されたキャストは有効で...
-
シグマ公式・・・C言語
-
複数桁10進数の*桁目だけを抽出...
-
足して100になるような乱数のア...
-
GlobalAllocの変数を関数に引き...
-
int型の変数値をバイト列として...
-
C言語での引数の省略方法
-
C言語で分からないところがあり...
-
C言語のサイコロシミュレート
-
(マルチスレッド)_beginthrea...
-
次のプログラムでは、配列yの中...
-
C言語でシグマで総和を求める関...
-
std::set<int> で、ある値が何...
-
これの答えは5になるとおもい...
-
C言語 ループ中からの関数の呼...
-
int16_t の _t は何?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「指定されたキャストは有効で...
-
C言語での引数の省略方法
-
複数桁10進数の*桁目だけを抽出...
-
C言語 エラーの原因がわからな...
-
#define _CRT_SECURE_NO_WARNIN...
-
ラップ関数とはどんなものですか?
-
【C++】関数ポインタの使い方
-
実数の整数部,小数部の取得
-
int型の変数値をバイト列として...
-
std::set<int> で、ある値が何...
-
PowerShellがうまくいかない
-
(int *)の意味
-
CStringの配列要素を関数で受け...
-
ColorをRGBで指定する方法
-
「{ } で囲むだけ」は正しい?
-
acceptをalarmでタイムアウトさ...
-
if と配列の組み合わせ
-
read関数をノンブロッキングで...
-
(マルチスレッド)_beginthrea...
-
int16_t の _t は何?
おすすめ情報