gpt4 book ai didi

c++ - For 循环语句 - 错误成员引用基类型 'int [13]' 不是结构或 union

转载 作者:行者123 更新时间:2023-11-30 03:13:50 26 4
gpt4 key购买 nike

我的 for 循环有什么问题?它位于辅助函数内,但我的代码中出现错误“成员引用基类型‘int [13]’不是结构或 union ”。当我使用 10 整数数组时,'int [13] 更改为 int[10],因此我认为这是一个问题。这里有两个例子:

        int newisbn13[13];
newisbn13[0] = 9;
newisbn13[1] = 7;
newisbn13[2] = 8;
for (int p = 3; p < newisbn13.length() - 1; p++)
{
newisbn13[p] = isbn10[p-3];
}

错误:成员引用基类型“int [13]”不是结构或 union

还有:

int calc_check_digit_13(int input[], int size) {
int sum = 0;
for (int i = 0; i < input.length(); i++)
{
int tempnum = 0;
if (i % 2 == 0)
{
tempnum = input[i];
}
else if (i % 2 == 1)
{
tempnum = input[i] * 3;
}
sum = tempnum + sum;
}
etc. etc. etc.
}

错误:成员引用基类型 'int *' 不是结构或 union

是什么导致我的代码出现此错误?感谢您的帮助。

最佳答案

newisbn13是一个数组,与 C# 或 Java 等其他语言不同,它不知道自己的大小。

您需要使用 sizeof(newisbn13)反而。或者从 c++17 开始你可以使用 std::size(newisbn13) .

但是这不适用于calc_check_digit_13 .因为input将衰减为指针,并且 sizeof 都不是也不std::size会在那里工作。但可能是参数 size是你想要使用的。

for (int i = 0; i < size; i++) {...}

关于c++ - For 循环语句 - 错误成员引用基类型 'int [13]' 不是结构或 union ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58382478/

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