time是这样声明的:
time_t time( time_t *timer );
用法是你先自己定义一个time_t变量,让后把变量的地址传给它。函数会返回自1970年1月1日0点走过的秒数,同时把这个返回值保存在你传进来的那个time_t*指向的变量里面。如果你传进来NULL的话,就不保存。
time_t time(time_t *t);
如果t是空指针,直接返回当前时间。如果t不是空指针,返回当前时间的同时,将返回值赋予t指向的内存空间
有 time_t t; 1 . 那time(&t); 是把什么放到了t的地址里、? 2 .看到有人写 time(NULL); 是什么意思、?数据怎么放到空指针里?、
1 是把一个正整数放进t所在的地址里,这个正整数是1970年1月1日00:00:00(UTC)开始,到目前为止经过的秒数。 2 因为time以两种方式返回结果。一种是你第一道题的,给他一个地址,他把结果写进那个地址。第二种直接返回一个time_t。你可以用这种方法接:time_t t = time(NULL)。这里给他一个空指针就是告诉他不需要以第一种方法返回结果,所以当然他也不会把结果写进空指针,他只是不管这个参数而已。当然只要你乐意你也可以两种一起用。
我记得NULL也可以吧? #include <time.h> time_t time( time_t *time ); 函数time()返回当前时间 若参数time给定,则当前时间存储在time指针中 在VC中,若需要给定time参数,并且返回值和time储存值相同,或是赋予NULL的值 time_t类型即long类型,其值是系统从1970年1月1日00:00:00到现在总共的秒数 看看这个原型声明,你传递0进去就被识别为NULL. 你要传递其它数那还是time_t *time吗??? time_t是一个NNNNN大的数!呵呵。