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