ページ 11

猫でもわかるが俺にはわからない

Posted: 2010年8月17日(火) 12:16
by 猫以下
最近C言語を習い始めたんですが
int main()
ってなぜint型なんでしょうか
char型とか使っているのにmainがint型なんて不思議です

あと、「猫でもわかるC言語プログラミング」に
printf("適当な整数値を入力してください___");
scanf("%d",&a);
printf("変数aに%dが入力されました\n",a);
実行結果
適当な整数値を入力してください___10
変数aに10が入力されました
と書いてあるのですが、変数のアドレスを入力した(つもりになっている?)のに
変数aに10が入力されたことになるのはどうしてでしょうか?

Re:猫でもわかるが俺にはわからない

Posted: 2010年8月17日(火) 13:26
by 未来のプログラマー
そういうことはまあまあやってる私でもよくわからないので
まだ知らなくてもいいと思いますよ?

Re:猫でもわかるが俺にはわからない

Posted: 2010年8月17日(火) 13:39
by たかぎ
とりあえず、Cでプログラミングするだけなら理由を知る必要はありません。
日本語で「これはペンです」の「は」がなぜ「わ」ではないのかを知らなくても、読み書きができるのと同じです。

雑学的な興味や、もっと深い部分でCを理解したいということであれば、そういってください。

Re:猫でもわかるが俺にはわからない

Posted: 2010年8月17日(火) 13:40
by softya
int main() がなぜintである必要があるかは、関数の戻り値に関する理解とC言語の規約に理解が必要です。
始めのうちは、int main()は決まりごとと理解しておいてください。
scanfは、基本的にポインタを渡してそのポインタが指す変数に値を入力する関数です。
なので、
scanf("%d",&a);
変数aのポインタをscanf関数にわたして、入力された数値を変数aに入れて戻ってきます。
これも関数の引数やポインタに関する知識がないとか理解しきれないと思いますので最初は決まりごとと受け取ってください。

Re:猫でもわかるが俺にはわからない

Posted: 2010年8月17日(火) 13:54
by 猫以下
なるほど、すべてを理解しなくてもいいのですか
scanf関数についても知識不足でした…
少し気が楽になりました
みなさんありがとうございます!