- ベストアンサー
変数の使い方
お聞きしたいのですが、下記の 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; }
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
質問文の宣言方法ですと、全く別と考えてOKです。 -- 宣言した直後にでも、 printf("%x", &average); とすると、average変数の格納されているアドレスが表示されますので、確認できるかと。
その他の回答 (1)
- crew21
- ベストアンサー率26% (58/222)
結論から言うと、全く別の変数です。 ただ、もうちょっと言うと(質問の主旨から外れますが)、 getaverage関数の中のaverage変数は、意味的に平均値が格納されているのではなく、平均値を算出するためのトータル値を格納していますよね。 なので、この変数はaverageではなく、totalなどとした方がいいと思いますよ。 これは非常に小さな関数なので、第三者が見た場合にすぐに「平均値でなくトータル値が格納されてるな」と気づいてくれますが、もう少し大きな、100行くらいの関数だと、誤解される可能性があります。
お礼
すばやい回答ありがとうございました! 初心者なので、変数にあまり気をとめていませんでした。 変数には、ふさわしい名前が必要なんですね。 勉強なりました。 ありがとうございました。
お礼
すばやい回答どうもありがとうございました! printf("%x", &average); も教えていただき、とても勉強になりました! ありがとうございました。