C言語、ポインタで文字の扱い

//C言語、ポインタで文字の扱い
アドレスを渡すとそのアドレス以降の文字を扱うことになる。
このときに、文字列の場合と1文字の場合があるのでその違いに注意する。

#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

こちらの記事もどうぞ