演習5-4 K&R プログラミング言語C
演習5-4 t のポインタを文字列終端に移動させる際に、条件節で i をインクリメントしているのは、終端に到達した際にもインクリメントするため。 これは、文字列の比較が終端文字から始まるため。 文字列 t が文字列 s の終わりに存在すれば i は 0 までデクリメントされる。 #include <stdio.h> int strend(char*, char*); int main(…続きを読む
演習5-4 t のポインタを文字列終端に移動させる際に、条件節で i をインクリメントしているのは、終端に到達した際にもインクリメントするため。 これは、文字列の比較が終端文字から始まるため。 文字列 t が文字列 s の終わりに存在すれば i は 0 までデクリメントされる。 #include <stdio.h> int strend(char*, char*); int main(…続きを読む
5.5 文字ポインタと関数 以下のように文字列定数の内容を書き換えようとすると失敗する。 #include <stdio.h> int main(void) { char amessage[] = "now is the time"; /* 配列 */ char *pmessage = "now is the time"; /* ポインタ */ …続きを読む
5.4 アドレス計算 正常にアドレスを指し示すポインタは 0 にはならない。 0 は異常値を表し、stdio.h で定義されている NULL を使う。 ポインタは同じ配列の要素を指し示している場合には、==, !=, <, >, <=, >= などの関係演算子を利用できる。 ポインタと整数との間の加減算は、ポインタが指し示すオブジェクトの型のサイズに応じて適切にスケールされ…続きを読む
サイトのメンテナンスを行う際に、訪問者にはメンテナンス中であることを示す画面 /maintenance/index.html を表示し、検索ロボットには 503 HTTPステータスコードを返す .htaccess の設定方法。 メンテナンス画面表示用のファイルを配置するディレクトリ /maintenance を作る。 サーバにメンテナンス中を示すページのファイル /maintenance/inde…続きを読む
5.3 ポインタと配列 #include <stdio.h> int main(void) { int i, len; int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int *pa; len = (sizeof a) / (sizeof a[0]); printf("a[] => "); for (i = 0; i &l…続きを読む