c - 我的第一个程序的几个小问题
问题描述
所以我是 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 是 a Pointer Language
)的内容。
&
表示存储中数据类型的地址
*
表示存储中数据类型的值
这段代码就是一个很好的例子:
double x, *y;
x = 5.0;
y = &x;
*y = -3.0;
现在x
有了值-3.0
,因为y
是的地址而改变了地址的值。x
*y
x
推荐阅读
- xamarin.forms - 如何全局启动 SignalR 服务
- ruby-on-rails - Rails ActionController 忽略请求标头
- recaptcha - Recaptcha 阻止 chrome 后退按钮正常工作
- java - 类型 Calendar 中的方法 set(int, int) 不适用于参数 (int, String)
- android - 无法在 Android 中请求 RECORD_AUDIO 权限
- excel-2016 - 在 Excel 中弹出图像
- android - 从 Android 中的 WebView 中删除 Instagram 用户数据
- powershell - powershell 中的数组处理
- ruby - 如何在 Ruby 中使用 Protocol Buffers 3?
- python - Python - 删除空行