1
‎#include<stdio.h>

int main()
{
  for(;NULL;)
    printf("STACK");

  return 0;
}

输出:堆栈我知道 NULL 的 ascii 值为 0,它是错误的,但是当我在 turbo c 上运行时,这个程序给出输出“堆栈”,这是怎么可能的。

4

2 回答 2

4

“堆栈”从不输出。这是因为for语句的条件部分始终为假(假设NULLd#define(void *)0.

于 2012-06-09T23:10:56.277 回答
1

turbo c 编译器是古老的(20 岁)。您看到的行为是一个错误。16 位应用程序未在您的操作系统(Win7 ?)上正确运行。

作为一种解决方法,您可以将 NULL 值分配给一个变量并在 for 循环的条件下使用它,或者甚至更好地切换到更新的编译器。像wxdev-cpp

于 2012-06-10T08:15:32.223 回答