我是C的绝对初学者,我在codeblocks中编写了这段代码并构建它,它没有错误。程序是,我们输入两个整数和显示,求和,减法,乘法和no1和no2的除法。
以下是代码:
#include <stdio.h>
int main ()
{
int no1,no2,sum,sub,multi,div;
printf("Enter your first number");
scanf("%d", &no1);
printf("Enter second number");
scanf("%d", no2);
sum=(no1+no2);
sub=(no1-no2);
multi=(no1*no2);
div= (no1/no2);
printf ("%d + %d = %d \n",no1,no2,sum);
printf ("%d - %d = %d \n",no1,no2,sub);
printf ("%d * %d = %d \n",no1,no2,multi);
printf ("%d / %d = %d \n",no1,no2,div);
return 0 ;
}
我得到0个错误但是当我运行它时,cmd打开,然后我输入no1和no2的值然后程序崩溃并给出消息窗口将调查问题。
答案 0 :(得分:4)
仔细查看此代码段:scanf("%d", no2);
答案 1 :(得分:1)
假设您声明了一个名为foo的变量。
int foo;
此变量占用一些内存。它占用四个字节的内存(因为int是四个字节宽)。
现在让我们声明另一个变量。
int *foo_ptr = &foo;
foo_ptr被声明为int的指针。我们已将其初始化为指向foo变量。
正如我所说,foo占据了一些记忆。它在内存中的位置称为其地址。 char'&amp;'是“地址”运营商。
此运算符返回变量的地址。在我们的例子中,foo,因此foo_ptr现在指向foo变量的地址存储器。
将每个变量视为一个框。 foo是一个sizeof(int)字节大小的框。此框的位置是其地址。当您访问该地址时,您实际上访问了它所指向的框的内容。
答案 2 :(得分:1)
你错过了'&amp;'在这......
printf("Enter second number");
scanf("%d", &no2);
答案 3 :(得分:1)
你忘了把&#39;&amp;&#39;在第二次扫描时:)