c - 指针变量如何工作,而不在 Turbo C++ 代码中初始化它?

标签 c pointers turbo-c

我是 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/

相关文章:

c - 如何在 Turbo C 中创建真值表

c - C/C++中float*和float[n]有什么区别

无法获取要在 c 中打印的数组

c++ - (c++) 堆上没有任何指针的对象会怎样?

c++ - 生成 "Next Number"并添加到 char*

c - 如何修复 "unable to open stdio.h in Turbo C"错误?

使用 C 更改文本颜色

c - 如何使用递归函数将十进制数转换为二进制数?

C - 创建子函数以重新分配数组大小

c - 如何将文本文件中一行中的整数分配给c中的变量?