英文:
What does mean ARR in the half place in C?
问题
代码部分不翻译,以下是翻译的内容:
"我有一段代码:get_transaltion(&(arr[1/2]) ),这个数组是包含了每个结构体的一个包含3个位置的数组,函数接受哪些位置呢?
我编辑了结构体中第一个位置的数组,但我没有得到我编辑的内容。"
struct vector {
float data[3];
};
arr[1 / 2u].data[0] = 1 + 0.1;
arr[1 / 2u].data[1] = 1 + 0.2;
arr[1 / 2u].data[2] = 1 + 0.3;
英文:
I have code :get_transaltion(&(arr[1/2]) )
The array is of structures that each contain an array of 3 places, which places does the function accept?
I edited the array in the first place in the structure with an array of 3 places and I didn't get what I edited
struct vector {
float data[3];
};
arr[1 / 2u].data[0] = 1 + 0.1;
arr[1 / 2u].data[1] = 1 + 0.2;
arr[1 / 2u].data[2] = 1 + 0.3;
答案1
得分: 1
以下是翻译好的部分:
所有这些语句
arr[1 / 2u].data[0] = 1 + 0.1;
arr[1 / 2u].data[1] = 1 + 0.2;
arr[1 / 2u].data[2] = 1 + 0.3;
等同于
arr[0].data[0] = 1 + 0.1;
arr[0].data[1] = 1 + 0.2;
arr[0].data[2] = 1 + 0.3;
因为由于整数算术,表达式1 / 2u
等于0
。
至于这个函数调用
get_transaltion(&(arr[1/2]) )
那么它等同于
get_transaltion(&(arr[0]) )
这是将数组的第一个元素的指针传递给函数。
英文:
All these statements
arr[1 / 2u].data[0] = 1 + 0.1;
arr[1 / 2u].data[1] = 1 + 0.2;
arr[1 / 2u].data[2] = 1 + 0.3;
are equivalent to
arr[0].data[0] = 1 + 0.1;
arr[0].data[1] = 1 + 0.2;
arr[0].data[2] = 1 + 0.3;
because due to the integer arithmetic the expression 1 / 2u
is equal to 0
.
As for this function call
get_transaltion(&(arr[1/2]) )
then it is equivalent to
get_transaltion(&(arr[0]) )
That is a pointer to the first element of the array is passed to the function.
答案2
得分: 1
/
运算符的结果是第一个操作数除以第二个操作数的商。
在这里:
1 / 2u
计算结果为 0。因此,它等同于以下写法:
arr[0].data[0] = 1 + 0.1;
英文:
The result of the /
operator is the quotient from the division of the first operand by the second.
Here:
arr[1 / 2u].data[0] = 1 + 0.1;
1 / 2u
evaluates to 0. So it's equivalent to writing:
arr[0].data[0] = 1 + 0.1;
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论