我是 C 新手。我只是感兴趣制作一个程序,该程序接受用户输入的两个整数并将其相加,但条件是我必须仅使用一个变量。我想出了这段代码:
#include <stdio.h>
int main()
{
int *a;
scanf("%d%d",a,(a+1));
printf("\nSum=%d",*a+*(a+1));
return 0;
}
scanf()
函数采用有效地址作为参数,我将值传递到 a
(尚未初始化)。那么,这段代码在 Turbo C++ 中是如何工作的呢?
最佳答案
您正在尝试访问不在程序范围内的区域。幸运的是TCC给了它,但我相信如果你继续实验,结果将是不确定的。
您可以执行类似的操作来解决使用 1 个变量进行添加的问题。
int main()
{
int a;
scanf("%d",&a); //scan the first number
getchar();
a += getchar()-'0'; // get the second number (restricted to 0-9)
printf("%d",a);
return 0;
}
关于c - 指针变量如何工作,而不在 Turbo C++ 代码中初始化它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43297865/