gpt4 book ai didi

c++ - C++ 中按引用长度排列的数组

转载 作者:太空狗 更新时间:2023-10-29 20:06:42 24 4
gpt4 key购买 nike

<分区>

Possible Duplicate: Calculating size of an array

这个问题以前有人问过,但我想确认一下。假设我有以下 C++ 函数:

#include <stdio.h>
#include <stdin.h>
#define length(a) sizeof(a)/sizeof(a[0])

int main()
{
double c[] = {1.0, 2.0, 3.0};
printf("%d\n", getLength(c));
return 0;
}

int getLength(double c[]) { return length(c);}

这应该返回错误的值,因为 size of 将返回指针的大小,而不是所指向的数组的大小。这:

template<typename T, int size>
int length(T(&)[size]){return size;}

我知道它可以直接工作,但我想知道我是否可以以某种方式间接调用它,即通过辅助函数。我知道两种可能的选择是将数组的长度存储在单独的槽中或使用 vector ,但我想知道的是:

给定一个函数 getLength:

getLength(double arr[])
{
...
}

有没有办法在不传递任何更多信息的情况下计算arr的长度?

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