gpt4 book ai didi

c - 获取错误 - 在初始化之前引用局部变量

转载 作者:太空宇宙 更新时间:2023-11-04 05:16:00 25 4
gpt4 key购买 nike

我写了一个简单的函数,它读取一个指向数组的指针。它查看数组的元素并比较相邻值是否相等。如果它们相等,则将它们的值添加到“sum”

我收到一个运行时错误,告诉我“在初始化之前引用了本地“sum”。”我不明白这一点,因为 sum 肯定是在我的函数中初始化的。请参阅代码片段。

int arrRead (char *Pinput){

int sum, a, b = 0;

while (*Pinput){
a = *Pinput;
++Pinput;
b = *Pinput;
if(a == b)
sum += a;
}
return sum;
}

最佳答案

int sum, a, b = 0;

这里只有b初始化为0

suma 未初始化。

你需要写:

int sum = 0, a = 0, b = 0;

或者,每个变量各占一行:

int sum = 0;
int a = 0;
int b = 0;

即使在您的函数中技术上只需要初始化 sum 就可以让算法工作,在声明时初始化所有变量也是一个很好的做法。


@melpomene 的另一个好建议是缩小变量的范围。例如 ab 仅在 while 循环中使用:

int sum = 0;

while (*Pinput){
int a = *Pinput;
++Pinput;
int b = *Pinput;
if(a == b)
sum += a;
}
return sum;

关于c - 获取错误 - 在初始化之前引用局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54809911/

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