char型の変数i、 char*型のポインタ変数j、 char**型のポインタ変数kは異なる型の変数であり それぞれ代入できるデータのタイプが決まっています

ソーラー「アレサ~


char *a[3];


が実行されると


ポインタ変数


a[0]

a[1]

a[2]


が生成されたよね(*´▽`*)


ポインタ変数を用いれば


文字列データ

"apple"

"orange"

"kiwi"


などの文字列データをメモリに格納することができました


そのときのプログラムがこちらです

👇

#include <stdio.h>


int main() {


char*a[3];


a[0] = "apple";

a[1] = "orange";

a[2] = "kiwi";



printf("%s\n", a[0]);

printf("%s\n", a[1]);

printf("%s\n", a[2]);


return 0;

}


ビルド実行結果

apple

orange

kiwi


アレサ「


char*a[3];


の実行により


ポインタ変数


a[0]

a[1]

a[2]


が生成され


a[0] = "apple";

a[1] = "orange";

a[2] = "kiwi";


の実行により


メモリに


文字列データ


"apple"

"orange"

"kiwi"


が格納されています


ところで


 ソーラーさん


ポインタ変数はアドレスを格納することのできる変数でした


となると


a[0] = "apple";

a[1] = "orange";

a[2] = "kiwi";


では


ポインタ変数


a[0]

a[1]

a[2]


アドレスが代入されているのですか?」



ソーラー「そこはいいところを・・・


そうなんだよ



a[0] = "apple";

a[1] = "orange";

a[2] = "kiwi";


では


ポインタ変数


a[0]

a[1]

a[2]


アドレスが代入されています


文字列データが代入されているのではありません



ポインタ変数


a[0]には


文字列データ


"apple"


を格納しているメモリの先頭のアドレスが


a[1]には


文字列データ


"orange"


を格納しているメモリの先頭のアドレスが


a[2]には


文字列データ


"kiwi"


を格納しているメモリの先頭のアドレスが


代入されています


そして


ポインタ変数


a[0]

a[1]

a[2]


%s出力変換指定子を作用させてprintf出力表示すると


apple

orange

kiwi


がコマンドプロンプト画面に表示されることになります」


アレサ「


a[0] = "apple";

a[1] = "orange";

a[2] = "kiwi";


では


ポインタ変数


a[0]

a[1]

a[2]


直接 


文字列データ


"apple"

"orange"

"kiwi"


が代入されているわけではないのですね」


ソーラー「そうなんだよ



char型の変数iには


char i='a';


文字データ'a'を格納することができます


char*型のポインタ変数jには


char* j=&i;


のように


文字データ'a'を格納しているメモリのアドレス&i



格納されることになります



char**型のポインタ変数kには


char** k=&j;


のように


文字データ'a'を格納しているメモリのアドレス&iを格納しているポインタ変数jのアドレス&jが


格納されることになります


このように


char型の変数i


char*型のポインタ変数j


char**型のポインタ変数kは


は異なる型の変数であり


それぞれ代入できるデータのタイプが決まっている🌞


というわけなんだね」


































  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る