- ベストアンサー
int型の文字について
文字も結局は数字とうことで、以下のようにしてみましたが、ABCとは表示されずAしか表示されません。 どうしてintだとAしか表示されないのですか? int aaa[4] ;//わざとintにした aaa[0]=0x41; aaa[1]=0x42; aaa[2]=0x43; aaa[3]='\0'; printf("%s\n",aaa[]);
- みんなの回答 (8)
- 専門家の回答
文字も結局は数字とうことで、以下のようにしてみましたが、ABCとは表示されずAしか表示されません。 どうしてintだとAしか表示されないのですか? int aaa[4] ;//わざとintにした aaa[0]=0x41; aaa[1]=0x42; aaa[2]=0x43; aaa[3]='\0'; printf("%s\n",aaa[]);
お礼
>>実はある学習用コンパイラは正しくABCと表示するの >>ですが、これはいったいどうなっているのでしょうか? すみません。これは私の勘違いでした。 知りたいのは、あるコンパイラは以下のようにしても正しく表示されるのですが、どうしてかということでした。 int aaa[]="abc" ;//わざとintにした printf("%s\n",aaa);
補足
int hoge=0x123456; unsigned char *p_hoge=(unsigned char*)&hoge; printf("%x \n", p_hoge[0]); printf("%x \n", p_hoge[1]); printf("%x \n", p_hoge[2]); こんな感じでメモリ上にどう並んでいるか確認して ようやく理解できました。