No.2ベストアンサー
- 回答日時:
こんにちは。
a[] 配列が0から始まるのはその中身が配列スタートからの距離だからです。
a[0]は配列a[]のスタート地点です。
a[1]はa[]のスタート地点から1つ分離れた場所の値ということになります。
おそらくポインタをこれから習うと思いますが、
*p = a とした場合は *(p+1) の値は a[1] の値と同じになります。
本来の意味合いは異なりますが。
ご参考までに。
No.8
- 回答日時:
なんというか、簡単に云えばコンピュータにとっては0から始まって
いる方が自然で分かりやすいわけです。
プログラミング言語はマシン語を少々人間に分かりやすくした
アセンブリ言語を更に人間に分かりやすくするために作られたもの
ですが、結局はコンピュータ本位なのでコンピュータに合わせなければ
いけません。
何故、0から始まるのはというのを考えようとしても難しい話に
なってしまいますので、単にそういうものだと覚えちゃった方が
簡単でしょう。
確かにプログラミング言語によっては添字が1から始まるものも
ありますが、それはそういう仕様で作成しているだけです。
ただ、歴史的には0から始まるものだったので基本としてそのような
仕様のものが多いです。
また、途中から変更してしまうと混乱も招きます。
No.6
- 回答日時:
>C言語の配列番号は"0"から始まりますが
他の言語だと、VisualBasic(Basic), Java, C#等も0から
始まりますが、FORTRAN, COBOL等の様に1から始まる物も
あります。
件名:配列の添字が0から始まるメリットは?
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.ph …
No.4
- 回答日時:
CPUがどう配列を処理しているかの観点で考えるといいですよ。
int a[5];
と定義します。
a の アドレスが 0x1000 だったとします。
つまり、
a の1番目のアドレスは 0x1000
a の2番目のアドレスは 0x1001
~~~~~~略~~~~~~~
a の5番目のアドレスは 0x1004
となります。
CPU は a[x] と指定された時、
0x1000 + x の位置として計算しますので、
1番目をさすには x は 0 である必要があります。
他の言語は...知りませんw
添え字をデクリメントしてるんでしょうかねぇ?
No.3
- 回答日時:
ポインタと配列を同じ取り扱いにしているからです。
char a[5];
char *p = a;
とあるときに、
配列へのアクセス a[i] と、
ポインタへのアクセス *(p+i) は、まったく同じ意味になります。
(それどころか、配列に対して *(a+i) というアクセスもできるし、
ポインタに対して p[i] というアクセスも可能。)
C言語においては、配列アクセスのa[i] という表記方法は、
*(a+i) を、より分かりやすく記述するためのおまけ(シンタックスシュガー)なのです。
(だから、トリッキーですが i[a] という表記もアリです。i[a] は *(i+a) を意味しますから、*(a+i) である a[i] とまったく同じ意味になります。)
このようなアクセス方法では、配列の要素へのアクセスは、
「先頭からいくつずらした要素にアクセスするのか」を意味します。
ですので、先頭の要素は、一つもずらしていない所の要素ということで、
配列の添え字は0から始まるのです。
添え字が1の場合は、1つずらした要素=先頭から2番目の要素、ということになります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- Perl perlで2次元配列をサブルーチンに値渡しで渡す 5 2022/12/17 18:49
- C言語・C++・C# const char** p;のとき、free(p)でC4090エラーとなるのはなぜですか 3 2023/03/31 16:28
- C言語・C++・C# 写真のc言語の問題がa以外わかりません。 正直aも自信がなく、解説していただけないでしょうか? 答え 3 2022/04/29 18:21
- Visual Basic(VBA) VBAで最新のデータを別シートに転記する方法をお教えください。 3 2022/04/07 19:20
- Visual Basic(VBA) EXCEL VBAで教えてください。 1 2022/12/22 04:20
- C言語・C++・C# 10人分の生徒の英語の点数{32,34,41,38,40,26,14,46,42,50} と数学の点 2 2022/05/26 21:31
- Excel(エクセル) エクセルで30日以内に同内容の入力があったら色を付ける 2 2023/03/04 12:32
- 発達障害・ダウン症・自閉症 WAISⅲについて 全検査 99 言語理解 88 知覚統合 110 作動記憶 92 処理速度 86 1 2022/11/22 10:18
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語 配列の長さの上限
-
先頭アドレスとは何ですか?
-
配列を使わずに、変数名を動的...
-
C# Listを使わずに2次元配列の...
-
【速いブラインドタッチ】手を...
-
配列で格納したものをmsgboxで...
-
CSVファイルのデータを2次元配...
-
C# 配列の変数宣言について。
-
C言語プログラミングで数あてゲ...
-
ExcelVBAで質問です。離れた二...
-
配列の配列?
-
市販のビンゴカードについて
-
C言語の配列番号が"0"から始ま...
-
unsigned char配列への入力の仕方
-
配列をEraseしてもメモリが開放...
-
テキストファイルから文字列を...
-
Visual C++で配列を動的に確保...
-
配列の参照渡しで型が一致しま...
-
プログラミングの課題で「5人分...
-
Excel、VBAのユーザーフォーム...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語 配列の長さの上限
-
配列を使わずに、変数名を動的...
-
先頭アドレスとは何ですか?
-
C# 配列の変数宣言について。
-
配列で格納したものをmsgboxで...
-
C# Listを使わずに2次元配列の...
-
VBで構造体の配列を関数に渡す...
-
テキストファイルから文字列を...
-
C言語で特定列だけを抽出して配...
-
Excel、VBAのユーザーフォーム...
-
【C言語】配列の中に配列を入れ...
-
配列を含む構造体の初期値について
-
unsigned char配列への入力の仕方
-
複数の選択範囲の行番号を個別...
-
【速いブラインドタッチ】手を...
-
配列の参照渡しで型が一致しま...
-
ExcelVBAで質問です。離れた二...
-
VB.NET 構造体の配列の検索機能...
-
VBでC言語のポインタみたい...
-
Redimした動的配列はEraseする...
おすすめ情報