#include<stdio.h>
int main()
{
for(;NULL;)
printf("STACK");
return 0;
}
输出:堆栈我知道 NULL 的 ascii 值为 0,它是错误的,但是当我在 turbo c 上运行时,这个程序给出输出“堆栈”,这是怎么可能的。
“堆栈”从不输出。这是因为for
语句的条件部分始终为假(假设NULL
d#define
为(void *)0
.
turbo c 编译器是古老的(20 岁)。您看到的行为是一个错误。16 位应用程序未在您的操作系统(Win7 ?)上正确运行。
作为一种解决方法,您可以将 NULL 值分配给一个变量并在 for 循环的条件下使用它,或者甚至更好地切换到更新的编译器。像wxdev-cpp