c
1#include <stdio.h> 2 3typedef struct Car { 4 int num; 5 double gas; 6 struct Car *next; 7}Car; 8 9int main() { 10 Car car0; 11 Car car1; 12 Car car2; 13 Car *pcar; 14 15 car0.num = 1234; car0.gas = 25.5; 16 car1.num = 4567; car1.gas = 52.2; 17 car2.num = 7890; car2.gas = 20.5; 18 19 car0.next = &car1; 20 car1.next = &car2; 21 car2.next = NULL; 22 23 for (pcar=&car0; pcar!=NULL; pcar = pcar->next) { 24 printf("車のナンバーは%d:ガソリン量は%fです。\n", pcar->num, pcar->gas); 25 } 26 27 return 0; 28}
最後の方のfor文内で最初にpcarにcar0のアドレスを入れているのに、なんでprintfでpcar->numとできるのでしょうか?
pcarはポインタ変数なのに、そのままでメンバのnumにアクセスしていいんですか?まあ、動いたからこれが正しいのは分かるんですが、なんで*(pcar)->numでエラーを吐くのか教えてください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/10/14 11:11