我是C编程的新手,我想弄清楚x <- matrix(rnorm(9), ncol=3)
solve(crossprod(x))
# [,1] [,2] [,3]
# [1,] 1.34638151 -0.02957435 0.8010735
# [2,] -0.02957435 0.32780020 -0.1786295
# [3,] 0.80107345 -0.17862950 1.4533671
solve(t(x) %*% x)
# [,1] [,2] [,3]
# [1,] 1.34638151 -0.02957435 0.8010735
# [2,] -0.02957435 0.32780020 -0.1786295
# [3,] 0.80107345 -0.17862950 1.4533671
在这个计时器&
中做了什么,但我无法在任何地方找到足够的答案。
(&end)
答案 0 :(得分:2)
&
是地址运营商。它是一元运算符,在内存中返回其操作数的地址(指向它的指针)。
在这种情况下,函数time
定义为
time_t time(time_t *t)
如您所见,time
接受指向time_t
类型变量的指针。这被称为传递引用(不严格准确,因为它实际上只是c中的指针,但仍然是一些有用的术语)。它允许传入的time_t
直接修改。基本上,不是传入end
,而是说“获得指向end
的指针并将其传递给”。因此,通过调用time(&end);
,time
函数可以设置end
的值,即使它作为函数参数传入。
我不得不说,一些快速的谷歌搜索肯定会提供一个完整的解释。有关详细信息,我建议您查看c ampersand operator
和c address-of operator
以及pass by reference vs pass by value
。