前の節で、配列は定数的な扱いをしたポインタみたいなもの である事について解説したが、 それではポインタは配列として見ればどうなるかと言うと、実は、ポインタは 完全に配列として扱って良い。例えば次の例を見てみよう。
例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 がポインタであって、配列名ではない
という点だけである。