&引用;scanf";函数使我的整个程序崩溃?

&引用;scanf";函数使我的整个程序崩溃?,c,crash,scanf,C,Crash,Scanf,我决定写一个老虎机作为我的第一个C程序。然而,我遇到了一些困难 scanf("%d", decision); if (decision == 1) 似乎只要使用这一部分,整个程序就会崩溃。为什么? 编辑:回答。我忘了在“决定”之前加上一个符号。谢谢大家 您的问题来自一个简单的错误:您忘记了&传递决策的地址,而不是它的值: scanf("%d", &decision); 请注意,可以通过增加编译器的警告级别来避免此类错误:gcc-Wall、clang-Weverything或cl/W4

我决定写一个老虎机作为我的第一个C程序。然而,我遇到了一些困难

scanf("%d", decision);
if (decision == 1)
似乎只要使用这一部分,整个程序就会崩溃。为什么?


编辑:回答。我忘了在“决定”之前加上一个符号。谢谢大家

您的问题来自一个简单的错误:您忘记了
&
传递
决策
的地址,而不是它的值:

scanf("%d", &decision);
请注意,可以通过增加编译器的警告级别来避免此类错误:
gcc-Wall
clang-Weverything
cl/W4


还要注意,您应该检查
scanf()
的返回值。如果将数字正确转换为决策,则应返回
1
。否则,使用
决策
可能会有未定义的行为。

@chevybow这个问题太宽泛,离题了。建议从一个简单的任务开始,阅读一本书是一个建设性的建议。一个明显的错误是:你必须使用“==”进行平等性检查,而不是“=”插入代码,将代码复制并粘贴到你的问题主体中,突出显示,然后按下带大括号的按钮。如果你的问题现在已经解决,您可能会考虑删除这个问题,因为它可能不会对将来的Read ReSeleLead栈溢出有用。请注意,在这里说“谢谢”的首选方式是投票选出好的问题和有用的答案(一旦你有足够的声誉这么做),并接受对你提出的任何问题最有用的答案(这也会给你的声誉带来一点提升)。请查看该页面,并且即使您的问题以副本形式关闭,您也可以接受答案。