gpt4 book ai didi

当数组值为零而不是空时,c 循环停止

转载 作者:太空狗 更新时间:2023-10-29 15:03:37 27 4
gpt4 key购买 nike

int findMax(int*sums){
int t = 0;
int max = sums[0];
while (sums[t] != '\0'){
printf("current max: %d %d\n", max, sums[t]);
if (sums[t] > max ){
max = sums[t];
}
t ++;
}
return max;
}

这个输出:

current max: 7 7
current max: 7 4
current max: 7 2

它忽略了列表的其余部分,sums。我认为这是因为 sums 中的下一个元素是 0。但我不明白为什么它将 0 视为 '\0'(null)。

最佳答案

sums 是一个整数数组(技术上是一个指向整数的指针)。 '\0'(空字节)和 0 是相同的值,因此您的循环将在遇到 0 时停止。就整数而言,没有空值这样的东西。术语“null”用于指代值 NULL,它通常是一个值为 0 的指针(即不指向任何东西的指针),还有 null (0 ) 字节,例如出现在空终止字符串末尾的字节。

关于当数组值为零而不是空时,c 循环停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38285645/

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