17.3 ポインタを配列として使う

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

例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 がポインタであって、配列名ではない という点だけである。



最初のページ 戻る 次へ 最後のページ 目次
Hiroyasu Asami