首页 > 解决方案 > 我的第一个程序的几个小问题

问题描述

所以我是 c 的新手,我的第一个程序有几个问题。我写了一个程序,它返回总和差乘积除以两个数字的提示。

#include <stdio.h>

int main(void) {
  int a, b, c, d, f, h, g;
  c = a + b;
  d = a - b;
  f = a * b;
  h = a / b;
  g = a % b;

  printf("Enter two numbers:");
  scanf("%d %d\n",&a,&b);
  printf("%d\n",c);
  printf("%d\n",d);
  printf("%d\n",f);
  if (b != 0 ) {
  printf("%d\n",h);
  printf("%d\n",g);
  }
}

所以由于某种原因,编译器显示第一句(输入两个数字)然后什么也不做,其次我不知道 & in

scanf("%d %d\n",&a,&b);

如果我没有写它,编译器会告诉我参数是 int* 但参数的类型是 int。什么是 Int* ?

我还注意到,如果我没有但 scanf 编译器将显示仍然数字,那是怎么回事?

32766
-32766
0
0
0

标签: c

解决方案


请阅读有关指针(C 是 a Pointer Language)的内容。

&表示存储中数据类型的地址

*表示存储中数据类型的

这段代码就是一个很好的例子:

double x, *y;
x = 5.0;
y = &x;
*y = -3.0;

现在x有了值-3.0,因为y是的地址而改变了地址值。x*yx


推荐阅读