使用'&'在特定的C程序中

时间:2016-01-28 03:51:25

标签: c

我是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)

1 个答案:

答案 0 :(得分:2)

&是地址运营商。它是一元运算符,在内存中返回其操作数的地址(指向它的指针)。

在这种情况下,函数time定义为

time_t time(time_t *t)

如您所见,time接受指向time_t类型变量的指针。这被称为传递引用(不严格准确,因为它实际上只是c中的指针,但仍然是一些有用的术语)。它允许传入的time_t直接修改。基本上,不是传入end,而是说“获得指向end的指针并将其传递给”。因此,通过调用time(&end);time函数可以设置end的值,即使它作为函数参数传入。

我不得不说,一些快速的谷歌搜索肯定会提供一个完整的解释。有关详细信息,我建议您查看c ampersand operatorc address-of operator以及pass by reference vs pass by value