繁体   English   中英

为什么运行此代码时cmd崩溃?

[英]Why does cmd crash when I run this code?

我绝对是C语言的初学者,我用代码块编写了这段代码并构建了它,没有任何错误。 该程序是,我们输入两个整数并显示,加,减,乘和除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的值,然后程序崩溃,并显示消息窗口将调查该问题。

仔细查看以下代码段: scanf("%d", no2);

假设您声明了一个名为foo的变量。

int foo;

此变量占用一些内存。 它占用四个字节的内存(因为一个int的宽度为四个字节)。

现在让我们声明另一个变量。

int *foo_ptr = &foo;

foo_ptr被声明为指向int的指针。 我们已将其初始化为指向foo变量。

如我所说,foo占用一些内存。 它在内存中的位置称为其地址。 字符“&”是“地址”运算符。

该运算符返回变量的地址。 在我们的例子foo中,因此foo_ptr现在指向foo变量的地址存储器。

将每个变量都视为一个盒子。 foo是一个大小为sizeof(int)个字节的框。 此框的位置是其地址。 访问地址时,实际上就是访问它所指向的框的内容。

盒子

您在这里错过了“&” ...

   printf("Enter second number");
    scanf("%d", &no2);

您忘记在第二个scanf处加上“&” :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM