C言語基本003

損害を補償しないことについて

このサイトを閲覧して生ずるいかなる損害も補償いたしません。

C言語基本003

このコーナーでは、【C言語基本003】をのせています。

C言語基本003の項目

以下の項目があります。
int型の1次元配列を扱う
int型を指すポインタを扱う
int型の1次元配列にポインタを用いる
文字列にポインタを用いる
printfで%sにより文字列を表示する

int型の1次元配列を扱う

int型の1次元配列を扱うプログラムの例を示します。コマンドプロンプト用のプログラムです。

cpk3_1実行結果

typeコマンドでファイル内容を表示しました。gccでコンパイルしました。a.exeができたので実行しました。上記例では、配列の要素の数は4つです。配列の変数名はiaです。先頭要素はia[0]です。最後の要素はia[3]です。

int型を指すポインタを扱う

int型を指すポインタを扱うプログラムの例を示します。コマンドプロンプト用のプログラムです。

cpk3_2実行結果

typeコマンドでファイル内容を表示しました。gccでコンパイルしました。a.exeができたので実行しました。上記例では、pがint型を指すポインタです。i1がint型の変数で、10で初期化済みです。i1のアドレスは、&i1です。p = &i1;で、i1のアドレスがpに代入されました。*pは、pが指すint型の値になります。10になっているはずです。確認すると、*pの値は10でした。*p = 20;で、pが指すint型の場所に20を代入しました。pにはi1のアドレスが入っているので、i1が20になっているはずです。確認すると、i1の値は20でした。

int型の1次元配列を扱う

int型の1次元配列を扱うプログラムの例を示します。コマンドプロンプト用のプログラムです。

cpk3_3実行結果

typeコマンドでファイル内容を表示しました。gccでコンパイルしました。a.exeができたので実行しました。上記例では、配列の要素の数は4つです。配列の変数名はiaです。先頭要素はia[0]です。最後の要素はia[3]です。配列名は先頭アドレスを表します。配列の先頭要素ia[0]のアドレスは&ia[0]です。iaは&ia[0]と等しくなります。

文字列にポインタを用いる

文字列にポインタを用いるプログラムの例を示します。コマンドプロンプト用のプログラムです。

cpk3_4実行結果

typeコマンドでファイル内容を表示しました。gccでコンパイルしました。a.exeができたので実行しました。文字列は多くの場合、char型の1次元配列で、最後にヌル文字を付加します。エスケープ文字が「¥」円マークの場合、ヌル文字は’¥0’です。(説明文中、全角円マークを使いましたが、プログラムでは半角です)
上記例では、pがchar型を指すポインタです。s1がchar型の配列です。

s1の先頭要素はs1[0]で、’a’で初期化済みです。s1の先頭要素のアドレスは、&s1[0]です。p = &s1[0];で、s1[0]のアドレスがpに代入されました。*pは、pが指すchar型の値になります。’a’で初期化された値になっているはずです。c = *p;で、int型変数に代入されました。次のprintfで、
Check1 [a] [a]
が表示されるはずです。確認すると、その通り表示されました。

s1の2番目の要素はs1[1]で、’b’で初期化済みです。s1の2番目の要素のアドレスは、&s1[1]です。p = &s1[1];で、s1[1]のアドレスがpに代入されました。*pは、pが指すchar型の値になります。’b’で初期化された値になっているはずです。c = *p;で、int型変数に代入されました。次のprintfで、
Check2 [b] [b]
が表示されるはずです。確認すると、その通り表示されました。

s1は配列名ですが、配列名は先頭要素のアドレスを表します。s1の先頭要素のアドレスは、&s1[0]です。p = s1;で、s1[0]のアドレスがpに代入されました。*pは、pが指すchar型の値になります。’a’で初期化された値になっているはずです。c = *p;で、int型変数に代入されました。次のprintfで、
Check3 [a] [a]
が表示されるはずです。確認すると、その通り表示されました。

補足説明
printfで%cに対応するのはint型の引数です。
多くの処理系では、char型を渡しても、期待通りに動作します。

printfで%sにより文字列を表示する

printfで%sにより文字列を表示するプログラムの例を示します。コマンドプロンプト用のプログラムです。

cpk3_5実行結果

typeコマンドでファイル内容を表示しました。gccでコンパイルしました。a.exeができたので実行しました。printfで%sにより文字列を表示するために、文字列の終端にヌル文字が必要です。エスケープ文字が「¥」円マークの場合、ヌル文字は’¥0’です。(説明文中、全角円マークを使いましたが、プログラムでは半角です)

文字列の先頭要素のアドレスを用いて表示します。
・文字の配列の変数名を用いることで表示できます。
・ポインタを用いることで表示できます。

下の「コピー」ボタンを押すと、このページのタイトルとURLがクリップボードにコピーされます。

タイトルとURLをコピーしました