main関数(p.114)
C言語のプログラムには、ただ一つのmain関数が必要です。無くてもダメですし、複数あってもいけません。プログラム実行時は、まずmain関数が実行されます。
関数定義と関数呼び出し(p.114)
例として以下のプログラムを参考に、関数の構造を見てみましょう。
これは、xとyの大きい方の値を求めるプログラムになり、結果は
のようになります 。上記プログラムでは、max2という名の関数が新たに作られています。max2の前に書かれているintはmax2がint型の関数である事を示し(返却値がint型であることを宣言しています)、括弧内のint xとint yは仮引数と呼ばれ、int型の仮引数が2つあることを示しています。どいうことかというと、
仮引数…呼び出し側(main)から引き渡された変数
返却値… 呼び出し側(main)に返す変数
ということになります。つまり、max2はmainから2つ変数(xとy)を受け取って、mainに一つ値(max)を返す関数だと言うことができます。
ちなみに、何も説明せずに使ってきたprintfなどももちろん関数です。C言語ではあらかじめいくつかの関数が用意されていて、これらの関数はライブラリ関数と呼ばれ、プログラムの一番始めに書く #include <stdio.h> によって、使用が可能になります。
ヘッダーファイル(おまけ)
stdio.hなど ".h"の拡張子がついているファイルをヘッダーファイルと言い、C言語でよく使われる関数(ライブラリ関数)が定義されています。 stdio.hの他にも、string.h(文字列処理)、ctype.h(文字処理)、math.h(数学処理)、time.h(時刻・日付)など機能別に多くのライブラリ関数が存在します。ちなみにstdio.hは入出力管理のための関数が格納されています。
関数の有効範囲(p.126)
関数中のブロックで宣言された変数などの識別子は、そのブロック内だけで有効であるのに対し、下記の様に関数の外で宣言された変数の識別子は、宣言された場所から、そのソースプログラムの終端までその値が使えます。
受け取った配列への書込み(p.132)
呼び出された側(int_zero)で仮引数として受け取った配列の要素に対して、何か値を代入をすると、それが呼び出し側(main)の配列に反映される。つまり、配列の要素が書き換えられてしまうということです。
const型修飾子(p.133)
渡す配列の中身を書き換えられたくないという場合、受け取った配列の中身を書き換えることができないようする方法が用意されていて、それは、仮引数の宣言時にconstという型修飾子を付ければOK。
実行すると以下のように、エラーが変えてきます
柴田望洋, ”明解 C言語 入門編”, Softbank Creative, p.114-145
last updated: Mar.25,2012
0 件のコメント:
コメントを投稿