gpt4 book ai didi

c - float* 类型的变量应该指向单个 float 还是一系列 float ?

转载 作者:行者123 更新时间:2023-12-03 15:47:56 28 4
gpt4 key购买 nike

考虑

  float a[] = { 0.1, 0.2, 0.3};
我很困惑 a稍后传递给函数 foo(float* A) .不应该是 float* 类型的变量指向单个浮点数,对吗?就像这里提到的 tutorial
enter image description here

最佳答案

好问题。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/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com