C/C++の変数と配列
前回、入力の書式について紹介したときに、変数について説明できていなかった。そこで今回は変数と、それに関係する定数の記述について紹介したい。
配列とは
配列(はいれつ)とは、同じデータ型の値を複数持つことが可能な変数のことで、これまでa[14]などと記述していたものがそれである。つまりchar a[14]とは、char型の値を14個持つことができるaという名前の配列ということになる。
配列に収められているそれぞれの値を要素(ようそ)といい、a[10]で宣言されている配列はa[0]からa[9]までの要素を保持することができる。このとき[0]や[9]の部分を添え字(suffix)という。
定数とその記述
定数(ていすう)とは、1、2といった数値や、”Hello!”のような文字列など、定まった値を持つデータをいう。これを記述するにも、実はきまりがある。その決まりには、文字に関するものと数値に関するものとがある。ここからはそれらを紹介したい。
数値の定数
数値の定数は、結果として同じ数を表すにしても、10進数、16進数、8進数による記述が可能だ。このきまりはPHPなど他のプログラム言語でも共通している。
- 10進数 100
- 16進数 0x64 (先頭に0xをつける)
- 8進数 0144 (先頭に0をつける)
文字に関する定数
C/C++で扱うことができる文字に関する定数には、文字定数と文字列がある。文字定数は、記述の上では文字だが、実際には文字コードという数値を表しており、一般にはchar型で表される。これは両端を''(一重引用符)で囲む。文字列は、文字定数が複数連なった集合でリテラル(literal)とも呼ばれる。こちらは両端を""(二重引用符)で囲む。"123"のように、数値を""で囲んだものも文字列として扱われる。
- 文字定数の例 - 'a', '\n' など (書式は%c)
- 文字列の例 - "Hello!", "123" など
文字定数は通常は1文字で表されるが、制御文字と呼ばれる一部の文字コードは、\を用いたエスケープ列で記述する。
| 制御文字 | \t(水平タブ、ASCIIコード9), \n(改行、ASCIIコード10), \r(復帰、ASCIIコード13) など |
|---|---|
| \自身 | \\ | 引用符 | \',\" | 8進数で表す文字定数 | \141 など | 16進数で表す文字定数 | \x61 など | ヌル(NUL)文字 | \0 |
文字列と配列との関係
これまで述べてきたことから、 char a[14] = "Hello, World!"; は、char型の配列に文字列を代入していることを表すのがおわかりだろうか。しかも[14]では代入される文字数よりも配列の要素が1つ多い。なぜだろうか。
それは、文字列の末尾には必ず'\0'が付属することになっているからだ。つまり"Hello, World!"は、'H'、'e'……'d'、'!'、'\0'という文字定数の集合で表されているということだ。
次回は、配列についてもう少し説明を加えたい。
- 特集: C/C++のイロハ:メモリ管理からオブジェクト指向まで (15件)
- 今日のトップ記事
- 昨日
- 2日前
- 5日前
- 6日前
- 7日前
- ホワイトペーパー
- 話題のタグ
ソーシャルテクノロジーをビジネスに利用する
Mozilla Labs、Firefoxで地理情報を認識活用できるプラグイン「Geode」を正式発表
DelphiのパフォーマンスをDelphiで改善:エンバカデロの製品戦略
社内政治を生き抜くための教訓10箇条
iPhoneでVoIP--Fringを早速試す
Firefox 3のブックマーク構造を理解しよう
ウェブページの段組みをレイアウトするCSS 3のMulti Column
ラウンドアップ:「優れたUI」を実現するためのアプローチ
MSのバルマー氏、「Windows Cloud」の発表を示唆
エンタメCGM「gooメーカー☆メーカー」
Techno Exchange
KDDI「SaaSソリューション」
これからの時代のセキュリティ対策
ZDNet Japan Green IT
グリーンITの第一歩は見える化です