[時間割:C言語]『はじめてのC言語完全入門』その14
2009/01/10 03:37 posted by kunkichi
金曜日は「C言語」。文字列とポインタです。難しそーだなー。
はじめてのC言語 完全入門 (標準プログラマーズライブラリ)
posted with amazlet at 08.08.19
塚越 一雄
技術評論社
売り上げランキング: 420963
技術評論社
売り上げランキング: 420963
- 文字へのポインタ宣言。
char *p; - ただしこの時文字列のためのメモリ確保は行われていないため、以下の方法でメモリを確保する。
- 動的メモリの確保。これは後日。
- 配列を確保して先頭アドレスをポインタに代入。
char *p;これでpが文字列を表す変数として使えるので、printfで出力してみる。
char str[]= "Hello, World";
p = str;printf("%s¥n",p);結果:Hello,Worldさらにポインタをインクリメントして、文字列の操作もできる。p++;結果:
printf("%s¥n",p);ello,World - 文字列リテラル
char *p = "Hello, World";シンプルでわかりやすい。ただし、確保した文字列の変更はできない。printf("%s\n",p);結果:
*p = 'h';
printf("%s\n",p);Hello,World逆に、配列を確保してポインタに代入した場合は変更できる。
Bus errorchar *p;結果:
char s[] = "Hello,World";
p = s;
printf("%s\n",p);
*p = 'h';
*(p+6) = 'w';
printf("%s\n",p);
return 0;Hello,World
hello,world
うーん、なんかピンとこないなー。配列、ポインタ、文字列とややこしいのがミックスした感じですっきりしない。
もう一度、前のところ見直してみようかな。
ちょっと短いけど今日はここまで。







コメント&トラックバック
トラックバックURL: