考虑
float a[] = { 0.1, 0.2, 0.3};
我很困惑a
稍后传递给函数 foo(float* A)
.不应该是 float*
类型的变量指向单个浮点数,对吗?就像这里提到的tutorial最佳答案
好问题。float *
指向单个浮点值。
但是,在 C 中,您可以进行指针运算。所以,当你从第一个指针中得到值时,你实际上可以去到下一个 漂浮在内存中。
在一个数组中,所有的浮点数都在内存中连续排列。
因此,为了访问整个数组,您只需要获取指向数组中第一个元素的指针并迭代到数组末尾。这就是为什么数组的大小也与指向数组第一个元素的指针一起传递给函数的原因。
void do_stuff(float * a, int n)
{
for(int i=0; i<n; ++i)
{
do_stuff_with_current_element(a[i]);
}
}
关于c - float* 类型的变量应该指向单个 float 还是一系列 float ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64957266/