{
static int i=5;
if(--i)
{
main();
printf("%d ",i);
}
}
このプログラムの出力は0 0 0 0
.
このプログラムはコンパイラ エラーを表示すべきではありませんか? ここで何が欠けていますか?
{
static int i=5;
if(--i)
{
main();
printf("%d ",i);
}
}
このプログラムの出力は0 0 0 0
.
このプログラムはコンパイラ エラーを表示すべきではありませんか? ここで何が欠けていますか?
main
プログラムで使用できないことを意味する特別なことは何もありませんが、コードが難読化されるため、お勧めできません。(非常に読みにくいということでコンテストに勝ったこの恐ろしいコードは、独自のメインを呼び出し、警告なしにコンパイルされます: http://research.microsoft.com/en-us/um/people/tball/papers/xmasgift/ )
プログラムの流れについて混乱している場合は、 と を切り替えることを検討してくださいmain
。printf
#include <stdio.h>
void main()
{
static int i=5;
if(--i)
{
printf("%d ",i);
main();
}
}
出力は4 3 2 1
編集:このコードは適切に使用していますint main(void)
#include <stdio.h>
int main(void)
{
static int i=5;
if(--i)
{
printf("%d ",i);
main();
}
return 0
}