gpt4 book ai didi

c - 为什么函数会生成负数?

转载 作者:行者123 更新时间:2023-11-30 21:35:19 24 4
gpt4 key购买 nike

我有一个函数可以生成 0-255 之间的数字,但它也会生成负值。如有任何建议,请。

char* generateRandomNumbers()
{
static unsigned char random[9];
srand(0);
static int i = 0;
for(;i<9;i++)
{
random[i] = rand() % (256);
}

return (char*)random;
}

打印数字:

char* random = generateRandomNumbers();
for (int i = 0; i < 9; i++) {
printf("%d\n", random[i]);}

最佳答案

rand() is also generating negative values

不,事实并非如此。 描述您实际观察到的行为。您没有观察到 rand 返回负数。您观察到,当将字符打印为数字时,您会得到一个负数。

所以你应该问的问题是:

Why is my char printing as a negative number?

因为 char 在您的 C 版本中进行了符号扩展。

关于c - 为什么函数会生成负数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38113189/

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