【问题标题】:Why does NULL assignment outside main function return an error为什么主函数外的 NULL 赋值会返回错误
【发布时间】:2020-08-26 23:52:45
【问题描述】:

这段代码返回错误。

#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 函数中做同样的事情,它就可以工作。但不在外面。

【问题讨论】:

  • 函数外不能有可执行语句,只能有声明和初始化。
  • 您不能在函数之外使用通用语句。您显示的第一个是一个定义,然后是一个赋值,第二个是一个带有初始化的定义。

标签: c pointers


【解决方案1】:

a = NULL; 是只能放在函数体中的语句

int* a= NULL; 是初始化全局变量a

的定义

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    • 2021-01-18
    • 2020-09-08
    • 2016-01-08
    • 2019-11-07
    相关资源
    最近更新 更多