質問に至った経緯
僕は今C言語の構造体の単元を学習しています。そこで -> 演算子を使って色々試していたらよくわからない状況に出会ったので質問することを決めました。
発生している問題・エラーメッセージ
エラーは出ず、実行できます。
該当のソースコード
#include <stdio.h> #define NAME_LEN 10 struct student { char name[NAME_LEN]; int height; float weight; long schols; }; int main(void){ struct student takao = { "Takao", 173, 86.2}; printf("takao->name : %s %p\n", (&takao)->name, (&takao)->name); printf("takao->name : %s %p\n", takao.name, takao.name); return 0; }
実行結果
takao->name : Takao 0x7ffc1c327ce0 takao->name : Takao 0x7ffc1c327ce0
わからないこと
なぜこのコードでエラーなく実行できてしまうんでしょうか。%s と %p にそれぞれ同じモノを表示させているのに実行できてしまう理由がわかりません。どなたか教えてくださると嬉しいです。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。