为什么主函数外的NULL赋值返回错误

这段代码返回错误。

#include<stdio.h>
#include<stdlib.h>

int* a;
a = NULL;

int main(){
    printf("works");
    return 0;
}

而这个不...

#include<stdio.h>
#include<stdlib.h>

int* a= NULL;

int main(){

    printf("works");
    return 0;
}

有什么区别,为什么这会显示重新声明错误? 如果我在main函数中执行相同的操作,它将起作用。但不在外面。

评论
  • 冷Oo
    冷Oo 回复

    a = NULL; is a statement you can put only in the body of function

    int* a= NULL; is the definition with initialization of the global variable a