刚刚开始编码,并试图做数学。代码应该在用户输入后执行添加,但是我在运行终端上的代码时只会得到-952492524
之类的随机结果。解决这个问题的正确方法是什么?
这是代码:
#include <stdio.h>
main()
{
int iquantity, iprice;
int iresult = iquantity + iprice;
scanf("%d", &iquantity);
scanf("%d", &iprice);
printf("%d", &iresult);
}
答案 0 :(得分:3)
您对printf的调用是打印变量的地址而不是其值。 scanf 需要地址,因为它会改变变量的值;这是通过指针传递变量。 printf 只需读取值,因此参数按值传递,而不是通过指针传递。
这是在C语言编码时学习的一个重要概念;与现代语言不同,C不隐藏变量引用:必须包含指针并知道何时使用它以及何时不使用。
这是了解有关该主题的更多信息的绝佳链接。 What's the difference between passing by reference vs. passing by value?
试试这样:
#include <stdio.h>
int main(void)
{
int iquantity, iprice;
scanf("%d", &iquantity);
scanf("%d", &iprice);
int iresult = iquantity + iprice; /* after scanf, not before */
printf("%d", iresult); /* and don't need a reference here */
}
答案 1 :(得分:0)
由于您设置了 ...
remove:()=>{
// you can remove by the id, because it's unique
document.getElementById('welcomeDivsss').remove();
}
...
的值而没有先给iresult
和iquantity
一个值,因此默认情况下它们会从内存中设置为不确定的值。您需要在iprice
方法调用后设置iresult
。