• ベストアンサー

変数の使い方

お聞きしたいのですが、下記の main関数、getaverage関数の両方で 変数averageを宣言してますが、 名前は同じだが、まったく別変数と考えて良いのですか? 教えてください。 #include <stdio.h> int getaverage(int data[10]); int main(void) { int average,array[10] = {15,78,98,15,98,85,17,35,42,15}; average = getaverage(array); printf("%d\n",average); return 0; } int getaverage(int data[10]) { int i,average = 0; for (i = 0;i < 10;i++) { average += data[i]; } return average / 10; }

質問者が選んだベストアンサー

  • ベストアンサー
  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.1

質問文の宣言方法ですと、全く別と考えてOKです。 -- 宣言した直後にでも、 printf("%x", &average); とすると、average変数の格納されているアドレスが表示されますので、確認できるかと。

startover
質問者

お礼

すばやい回答どうもありがとうございました! printf("%x", &average); も教えていただき、とても勉強になりました! ありがとうございました。

その他の回答 (1)

  • crew21
  • ベストアンサー率26% (58/222)
回答No.2

結論から言うと、全く別の変数です。 ただ、もうちょっと言うと(質問の主旨から外れますが)、 getaverage関数の中のaverage変数は、意味的に平均値が格納されているのではなく、平均値を算出するためのトータル値を格納していますよね。 なので、この変数はaverageではなく、totalなどとした方がいいと思いますよ。 これは非常に小さな関数なので、第三者が見た場合にすぐに「平均値でなくトータル値が格納されてるな」と気づいてくれますが、もう少し大きな、100行くらいの関数だと、誤解される可能性があります。

startover
質問者

お礼

すばやい回答ありがとうございました! 初心者なので、変数にあまり気をとめていませんでした。 変数には、ふさわしい名前が必要なんですね。 勉強なりました。 ありがとうございました。

関連するQ&A