#include<stdio.h>
void func();
void func()
{
int y;
y=y+2;
printf("%d",y);
}
int main()
{
func();
func();
return 0;
}
func()が2回目に呼び出されたときに、なぜ24が印刷されるのですか?変数yは終了する必要がありますか?それが宣言されていないのになぜ静的変数のように振る舞うのですか?なぜデフォルトでは、varibaleはcでstaticとして宣言されていますか?
あなたのコードは未定義の動作を生成しています。コンパイラはあなたに警告する必要があります。 –