前の節で、配列は定数的な扱いをしたポインタみたいなもの である事について解説したが、 それではポインタは配列として見ればどうなるかと言うと、実は、ポインタは 完全に配列として扱って良い。例えば次の例を見てみよう。
例5 ポインタを配列として使う main(){ char *s = "array"; char *p; int i; for(i=0; *(s+i)!='\0'; i++ ){ putchar(*(s+i)); } putchar('\n'); for(i=0; s[i]!='\0'; i++){ putchar(s[i]); } putchar('\n'); } |
最初の for
文で行っている事と、次の for
文で行っている
事はほぼ同じである。実際、先に説明したように、s[i]
は常に
*(s+i)
に等しいのであるから、全く同じ内容を違ったように書いている
だけであり、唯一の違いは s
がポインタであって、配列名ではない
という点だけである。