###前提・実現したいこと
普段、仕事でWeb系のプログラムを書いていますが
最近、Head First C という本でC言語を勉強し始めました。
そこでどうしても理解できない部分があります。
###該当のソースコード
c
1#include <stdio.h> 2 3int main() 4{ 5 int doses[] = {1, 2, 3, 1000}; 6 printf("用量%iを与える\n", 3[doses]); 7 8 return 0; 9}
###試したこと
上記のコードで、
標準出力に「用量1000を与える」が出力されるところまで確認しています。
また、本の解説では
c
1doses[3] == *(doses + 3) == *(3 + doses) == 3[doses]
と書いてあり、補足的な情報として、
dosesなどの配列変数はポインタとして使える
とありました。
c
1doses[3] == *(doses + 3) == *(3 + doses)
までは理解出来るのですが、なぜ
c
13[doses]
になるのかがどうしても理解できません。
そういう書き方も出来るんだ。と考えるべきなのでしょうか。
以上です。是非お知恵を拝借させて下さい。
すみませんが、よろしくお願い致します。
以下追記です。
###出典について
Head First C――頭とからだで覚えるCの基本
David Griffiths、Dawn Griffiths 著、中田 秀基 監訳、木下 哲也 訳
2013年04月 発行
ISBN978-4-87311-609-9
出版社: オライリージャパン
原書: Head First C
出版社サイトのこの本についてのページ
回答2件
あなたの回答
tips
プレビュー