//C言語、ポインタで文字の扱い
アドレスを渡すとそのアドレス以降の文字を扱うことになる。
このときに、文字列の場合と1文字の場合があるのでその違いに注意する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
#include <stdio.h> int main(int argc, const char * argv[]) { // insert code here... printf("Hello, World!\n"); char* text; char* pchar; char* pchar2; text = "abcd";//ポインタだとこんなことができるが、配列だとできない。以下のmoji[]参考 pchar = &text[0];//a以降の文字が変数に入る pchar2 = &text[2];//c以降の文字が変数に入る printf("pchar:%s\n",pchar);//こっちは文字列 printf("pchar2:%s\n",pchar2);//こっちは文字列 printf("pchar(char):%c\n",*pchar);//ポインタをつけると1文字になる printf("pchar2(char):%c\n",*pchar2);//ポインタをつけると1文字になる char moji[10] = "apple"; printf("moji[]=%s\n",moji); /*配列の場合 char moji[5]; moji = "apple" とすると ☓ エラーになる。ポインタにするとOK */ return 0; } |
実行結果
Hello, World!
pchar:abcd
pchar2:cd
pchar(char):a
pchar2(char):c
moji[]=apple