• 検索結果がありません。

郢晄亢縺ケ晢スウ郢ァソ邵コィ鬩滓ヲ

N/A
N/A
Protected

Academic year: 2021

シェア "郢晄亢縺ケ晢スウ郢ァソ邵コィ鬩滓ヲ"

Copied!
2
0
0

読み込み中.... (全文を見る)

全文

(1)

1

ポインタと配列

 データは単純変数として使うことの他に、配列として使うこともできます。これに対 応するように、ポインタも単純データを表現するとともに、配列データを表現することが できます。配列とポインタは密接な関係があります。配列が添え字を使うことによってで きる操作は、ポインタですべてできます。

1.1

配列名はポインタである

ポインタと配列の関係を述べる前に、まず配列そのものを理解することにしましょう。 今、 char ss[5]; という配列が使われているとします。このとき各要素を参照するためには、 a = ss[3]; ss[4] = 0; のように操作します。ss[3]は配列の要素です。では、ここで、 ss とは何でしょうか。ssに値を代入することはできません。printfでssの値を出力するこ ともまずありません。しかし、ここでssはちゃんと意味をもっています。それは、 –ssは配列ss[0]からss[4]の先頭アドレスを示すアドレスを示す定数である。 ということです。いま配列ssが1000番地からはじまっているとすると、その関係は次 のようになります。 ss 1000 ->ss[0] 1000番地 ss[1] 1001番地 ss[2] 1002番地 ss[3] 1003番地 ss[4] 1004番地 この関係図を見てわかるように、配列名はポインタの一種です。ただし、それは配列の先 1

(2)

頭アドレスを固定的に指している定数としてのポインタです。したがって、配列名ss を 使って配列の先頭アドレスを別のポインタに代入することができます。しかし、逆に配列 例ssに何かを代入するなどの変更行為はできません。たとえば、 char ss[3]; char *p; p = ss; //正しい。pはss[0]のアドレスを指す。 ss = p; //誤り p = ss + 2; //正しい。pはss[2]のアドレスを指す。 となります。なお、配列の先頭ではなく途中の要素のアドレス、たとえばss[3]のアドレ スをポインタに設定したい場合、配列名を使うなら、 p = ss + 3; とします。また、ポインタ演算子&を使って p = &ss[3]; とすることもできます。通常、配列名は先頭アドレス参照だけに用いられ、途中要素のア ドレスを取り出すときには後者のほうがよく用いられます。 新C言語入門 ソフトバンクパブリッシング 林晴比古 175頁 2

参照

関連したドキュメント

点から見たときに、 債務者に、 複数債権者の有する債権額を考慮することなく弁済することを可能にしているものとしては、

本論文での分析は、叙述関係の Subject であれば、 Predicate に対して分配される ことが可能というものである。そして o

行なうこととします。

その限りで同時に︑安全配慮義務の履行としては単に使

きも活発になってきております。そういう意味では、このカーボン・プライシングとい

・私は小さい頃は人見知りの激しい子どもでした。しかし、当時の担任の先生が遊びを

これも、行政にしかできないようなことではあるかと思うのですが、公共インフラに