我对 C 的经验很少,但被要求将 C 程序转换为 R。有一点让我感到不安:
我有一个需要 int 的函数
int a
在函数中我有一个数组:
double b[3] = {
1.8293,
-0.592,
2.3330,
}
后来在我的功能中:
c = b[a];
有人能告诉我这条线在做什么吗?分配给 c 的是什么?它只是一个大小为 b 的数组,其中 b 的所有值都乘以 a 吗?
谢谢。
c
分配有数组的a
第 th值b[]
。
如果a
等于 1 那么c
将等于-0.592
如果 a 包含 0 则c = b[a]
表示将数组 b[] 的第一个元素分配给 a,而不更改数组 b
这里的变量 a 是数组的索引。例如,如果 a=0,则 b[a] 是第一个元素(在本例中为 1.8293)。
通常 b[a] 从数组中提取特定元素。
因此,这是您描述的功能的模型(我编造了您未提及的部分),我添加了评论//
以解释发生了什么:
void foo(int a)
{
// define an array of 3 doubles
//b[0] = 1.8293
//b[1] = -0.592
//b[2] = 2.333
double b[3] = { 1.8293, -0.592, 2.3330 };
double c; // Note c is a double, because we're going to assign
// one of the values from b
//we're going to use a to access array b, that means a has to be 0, 1, or 2
if(a < 3)
c = b[a];
//Now c is set to one of those three values in b
//(depending on what value a has)
return;
}
将double
数组的第 a 个元素b
分配给c
(第一个元素的索引为 0)。
您需要在 C 学习中迈出一步。
b[a] 表示您将从 b 数组中获取索引为 a 的元素的内容