このページにおける、サイト内の位置情報は以下です。


社団法人日本電気技術者協会 電気技術解説講座 文字サイズ変更ヘルプ
Presented by Electric Engineer's Association
C言語の基礎(1)  =プログラミングの基礎= 長門国際特許事務所 山崎 靖夫

C言語はUNIX(ユニックス)と呼ばれるコンピュータの基本ソフトウェア(OS:オペレーティング・システム)を記述する言語である。1971年にベル研究所(アメリカ)のデニス博士が開発した。このC言語とプログラミングの基礎について解説する。
※テキスト中の図はクリックすると大きく表示されます

01 C言語とは

 C言語はUNIX(ユニックス)と呼ばれるコンピュータの基本ソフトウェア(OS:オペレーティング・システム)を記述する言語として、1971年にベル研究所(アメリカ)のデニス博士が開発した言語である。C言語は当初、UNIXのOS記述言語として使われてきたが、マイクロコンピュータを組み込んだ小型の機器や大型電子計算機に至るまで幅広く使われるようになった。


02 Cプログラミングの基礎

(a) Cプログラムの概要

(1) 書 式

 FORTRANやBASICなどの言語にはそれぞれ書式が定められている。プログラムは、この書式に従って作成する必要がある。しかし、C言語ではこの書式が厳密に定められていない。これを自由書式またはフリーフォーマットという。具体的には、順序が正しければ1行にプログラムのすべてを記述してもかまわないし、何行かに分けて記述してもかまわない。
  例えば、画面に「電気技術」という文字を表示するプログラムの一例をあげる。
  記述例1
	#include <stdio.h>
	main()
	{
		printf("電気技術 \n") ;
	}
 記述例2
	#include <stdio.h>main(){printf("電気技術 \n") ;}
 どちらの記述でプログラムしても、同じ処理結果が得られる。しかし、プログラムの作成、修正または変更などを考慮すると記述例1のようにすることが望ましい。
  なお、ここで取り上げたプログラムの内容を解説すると次のとおりである。
 ① #include:インクルード文
 C言語の処理系(コンパイラ)が用意している手順に従って、プログラムを書き換えるようコンパイラに指示する命令文である。この前処理を行うプログラムのことをプリプロセッサと呼ぶ。
 ② stdio.h:スタンダード・アイオー・ヘッダ
  インクルード文で読み込まれるファイルで標準的な入出力関数とその書式が記述されたものである。
 ③ main( ):メイン関数
  C言語は複数の関数が集まって構成される。この関数のうちメイン関数はC言語の主プログラムとなる。
 ④ printf( ):標準出力に対する出力関数
  標準出力(ディスプレイ)に文字や数値を表示する出力関数である。この例に記載されている \nは改行を意味する制御文字である。
  なお、関数には処理終了(1文の終了)を示すためセミコロン「 ; 」を付ける。
 

(2) 文字の種類

 C言語で使うことのできる文字は英字の大文字(26字)と小文字(26字)、数字(10字)と29種類の記号、空白文字(スペース)、改行、タブである。これらの文字を組み合わせてプログラムを作成する。
 

(b) 定 数

(1) 数値定数

① 整数定数

 整数定数は小数、指数などを含まない整数だけを扱う定数である。数値の前に0を付けた場合は8進数を、0xを付けた場合は16進数を表す。
 

② 実数定数

 整数定数以外の7桁の有効桁数の数値定数である。7桁を超える場合には、数値の最後にLまたは l(小文字)を付記する。
 

(2) 文字定数

① 1文字定数

 文字を「 ' 」(シングルクォーテーション)で挟み込んだものである(例えば、'a'、'+'など)。
 

② 文字列定数

 文字を「 " 」(ダブルクォーテーション)で挟み込んだものである(例えば、"a"、"電気技術"など)。
 

(c) 変 数

 変数は数値や文字などをメモリに記憶するためにコンピュータに用意された引き出し(箱)に相当するものである。変数を使う前にあらかじめプログラム中で変数の宣言をする必要がある。
  変数の宣言は、次のようにする。 
	データ型 変数名 ;
 例えば、整数の変数としてdenkiという変数を宣言する場合、整数を表すデータ型の識別子「int」を用いて、
	int denki ;
とする。この変数のデータ型を第1表に示す。
  また、変数に値を入れることを代入といい、特に変数に最初に値を代入することを初期化という。


03 入出力と演算子

(a) 画面への表示

 ディスプレイに文字を表示させる関数としてprintfがある。この関数は1文字出力のほか、複数の文字から成る文字列を表示させることができる。printf関数は表示する書式の指定ができ、いろいろな書式で出力することができる。printf関数の書式は、次のようにする。
 
	printf ("出力の書式",引数1,引数2,…) ;
 出力の書式には出力形式を指定する書式指定子を記述する。書式指定子は第2表に示すように変数のデータ型によって異なり、データ型にあった書式指定子を指定する。なお、引数とは変数や算術式のことである。

(b) キーボードからの入力

 キーボードから文字を取り込む関数としてscanf関数がある。この関数は1文字または1数字の入力のほか、複数の文字から成る文字列または複数の数値から成る数値列をコンピュータに取り込むことができる。scanf関数の書式は次のとおりである。
	scanf("入力の書式",&引数1,&引数2,…) ;
 scanf関数の引数の前には「&」(アンパサンド)記号を付ける。この記号はアドレス演算子と呼ばれるもので、引数に割り当てられているメモリアドレスをscanf関数に引き渡して、そのメモリアドレスで指定された番地(アドレス)のメモリにキーボードから与えられた数値または文字が格納される。
 

(c) 演算子

(1) 算術演算子

C言語で用いられる算術演算子を第3表に示す。

(2) 代入演算子

C言語で用いられる主な代入演算子を第4表に示す。


04 分岐処理

 C言語の分岐処理は「if」〜「else」文を使って処理する。例えば、第1図に示す流れ図をC言語でプログラムすると以下に示すようになる。
 分岐処理のプログラム例
	if (a > b) {
		処理1  ;
	}
	else
	{
		処理2  ;
	}
 分岐の条件判断を行う演算子には関係演算子と等価演算子とがあり、それぞれ第5、6表に示すように定義されている。
  関係演算子または等価演算子の結果は、条件が成立する場合は1(真)、不成立の場合は0(偽)の値を返す。