什么是foo-> bar和& foo-> bar之间的区别?

时间:2014-03-06 19:45:44

标签: c

1. struct thread_args 
   {
2.   int thread_id;
3.   struct timeval before;
4.   struct timeval after;
   }

5. void * foobar(void *threadargs)
   {
6.   struct * mydata;
7.   mydata = (struct thread_args *) threadargs;

8.   gettimeofday(&mydata->before, NULL);
9.   gettimeofday(mydata->before, NULL);
   }

...

8号线和9号线有什么区别?前者编译,后者不编译,但即使第一个编译我也不确定它是否符合我的要求。

1 个答案:

答案 0 :(得分:3)

foo->bar =结构变量bar中变量foo包含的值。

&foo->bar =结构变量bar中变量foo的地址。

请参阅此operator precedence table

gettimeofday()需要struct timeval *类型的第一个参数。所以gettimeofday(mydata->before, NULL);无法编译。