gpt4 book ai didi

c - 避免更改 C 中的常量值

转载 作者:行者123 更新时间:2023-11-30 18:20:32 24 4
gpt4 key购买 nike

我在这里遇到一个问题,我收到一个错误,说写入常量对象。是的,我知道我是这样,但是对于这个函数,它要求用户输入骰子 1-5 的值,并且 input(i) 将被分配给骰子 [i],这是行不通的,因为它是恒定的,我该如何解决这个问题?

谢谢

void readDieValues(const int dice[], int nrOfDice)
{
//Reads user inut
int i = 0;

//When i > 0 and < 5 the user is asked to entar a value for dice i+1
//Dice i+1 because i starts at 0 and dies are numbered from 1-5

for ( ; i < 5 ; i++){
printf("Die %d: ", i+1);
scanf("%d", &dice[i]);
}
}

最佳答案

嗯?

您知道要写入参数,但仍将其声明为 const?为什么?这没有道理。

您始终可以尝试放弃 const,但这非常丑陋,几乎永远不应该这样做,尤其是在像您这样的情况下:

scanf("%d", (int *) &dice[i]);

此外,您必须检查 scanf() 的返回值,它是脆弱的 I/O,并且可能会失败。

关于c - 避免更改 C 中的常量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19426884/

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