アプリ版:「スタンプのみでお礼する」機能のリリースについて

次のプログラムでは、sum関数の戻り値はvoid型であるにもかかわらず、
計算結果を返すことが出来るのは何故なのか簡潔に説明せよ。

#include <stdio.h>

void sum(int,int,int*);

int main(void)
{
int value;
sum(50,100,&value);
printf("%d\n",value);
return 0;
}

void sum(int min,int max,int *ans)
{
*ans = (min + max) * (max - min + 1) / 2;
return;
}

この答えは、sum関数の3つ目の引数がポインタ型の変数として宣言されているからでいいんでしょうか。わかる方教えて下さい。

A 回答 (1件)

sum関数の戻り値はvoid型(戻り値は返さない)であるが、計算結果は引数ans(int型へのポインタ)で指定される領域へ格納されるから。

    • good
    • 0
この回答へのお礼

とてもわかりやすかったです。
ありがとうございました。

お礼日時:2015/10/23 19:06

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