C言語のきほん「ポインタの基本(13)文字列とポインタ(1)」

スポンサーリンク
C言語

これから、文字列とポインタの類似点や相違点についてご紹介しよう。

配列による文字列とポインタによる文字列

今回は、「配列による文字列とポインタによる文字列を表示するプログラム」を例にして説明しよう。

なお、本プログラムは、Windows 11 Home(23H2)上で、 Visual Studio Code(1.90.0)を使用して作成し、gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0でコンパイルしている。

//配列による文字列とポインタによる文字列を表示するプログラム

#include <stdio.h>

int main(void)
{
    char str[] = "XYZ";
    char *ptr = "789";

    printf("str = \"%s\"\n",str);
    printf("ptr = \"%s\"\n",ptr);

    return 0;

}

実行結果

str = "XYZ"
ptr = "789"

配列による文字列str

strはchar[4]型の配列である。

文字列内の各文字のアクセスは、添字演算子[ ]を使って行う。

ポインタによる文字列ptr

ptrは、char *型のポインタである。

ポインタによる文字列は、
 char *p = “String”;
のように宣言・初期化する。
→ポインタpと文字列”String”の両方が記憶域を占有する。

ポインタptrは、文字列の先頭文字を指すポインタなので、ポインタと配列の表記上の可換性により、ポインタptrは配列のように振る舞う。

参考) 新・明解C言語 入門編 第2版 柴田 望洋 (著)SBクリエイティブ

コメント

タイトルとURLをコピーしました