以下是我不明白的代码.
#include<stdio.h>
int main(int argc, char *argv[])
{
int num;
printf("\n Number: " );
scanf("%d", &num);
if (num >= 0)
{
int abs = num;
}
else
{
int abs = -num;
}
{
int abs;
printf("\n Values are %d %d", num ,abs);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我输入一个数字为4时,输出是Values are 4 4
当我输入一个数字为-4时,输出为Values are -4 4
我无法理解它是如何打印绝对值的?在if循环和else循环中定义的变量abs应该在退出后被释放.
请告诉我.
问候,黑暗
你是绝对正确的.
你看到最后一个块在哪里int abs
被宣布了吗?请注意,abs
未初始化,使用未初始化的变量会产生未定义的结果.使用您的特定编译器,只需要您运气好,并且新的内存块abs
仍然包含来自(过期的)先前范围的结果.