c语言中int amount=100,后用scanf再赋值为什么不加原先的100?

如题所述

在C语言中,变量在使用之前需要先进行声明,声明告诉编译器该变量的类型和名称。在声明后,变量的初始值通常为0或者空指针(对于指针类型)。但是,如果你在声明变量时进行了初始化,那么变量将具有初始值。
在你的例子中,当你声明变量int amount = 100;时,你已经给amount赋了初始值100。然后,当你使用scanf函数给amount重新赋值时,新的值将覆盖原来的初始值。
这是因为scanf函数是用于从标准输入中读取数据的,它将读取的值存储到指定的变量中,覆盖原有的值。在你的例子中,当你使用scanf读取新值时,这个新值将覆盖amount原有的初始值100。
如果你想在重新赋值时保留原来的值,你可以将原来的值存储到一个临时变量中,然后在scanf之后将临时变量的值与新的值相加,再将结果赋值给amount。例如:
c复制代码
int originalAmount = amount; // 存储原来的值

printf("请输入新的金额:");
scanf("%d", &amount); // 读取新的值并存储到amount中

amount += originalAmount; // 保留原来的值
这样,当你重新赋值amount时,它将保留原来的值,并与新的值相加。
温馨提示:答案为网友推荐,仅供参考
相似回答