Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 静态字符*buf=NULL_C_Variables_Static - Fatal编程技术网

C 静态字符*buf=NULL

C 静态字符*buf=NULL,c,variables,static,C,Variables,Static,我是编程新手,我有一个关于C中静态变量的项目要做。我看到我们可以像这样声明一个静态变量: static char *buf = NULL 在末尾添加“=NULL”是怎么做的?它在编译时用NULL初始化该指针。否则其起始值未定义。将ptr初始化为零 同 static char *buf = 0; 对于静态变量,它只添加了一个文档组件:作者记录值显式设置为NULL 唯一的(内部)区别是,如果存在这样的概念 static char *buf; 将被放入.bss段(分别在“运行”时归零),

我是编程新手,我有一个关于C中静态变量的项目要做。我看到我们可以像这样声明一个静态变量:

static char     *buf = NULL

在末尾添加“=NULL”是怎么做的?

它在编译时用
NULL
初始化该指针。否则其起始值未定义。

将ptr初始化为

static char *buf = 0;

对于
静态
变量,它只添加了一个文档组件:作者记录值显式设置为
NULL

唯一的(内部)区别是,如果存在这样的概念

static char *buf;
将被放入
.bss
段(分别在“运行”时归零),而

可能放入
.data
(相应的变量可能与其他非零初始化变量一起初始化)


(“may”的意思是:编译器可以自由选择将其放入
.bss
,尽管进行了初始化,因为效果是一样的。)

看起来您需要拿起一本书,开始阅读许多基本概念。@user2485710错误language@LightnessRacesinOrbit打开该页并阅读该页的标签tabs@user2485710:公平竞争,不适用于
static
。它可能被放入
.data
部分,但这取决于编译器。@haccks:是的<代码>静态s在执行任何其他初始化之前始终为零初始化。参考标准为C99 6.7.8/10。@LightnessRacesinOrbit;谢谢你的推荐。我不知道,谢谢,所以。。。当我声明static char*buff时,我不需要添加“=NULL”,对吗?@神秘陌生人你不需要,但是如果你想记录一些东西,这不会有什么坏处。
static char *buf = NULL;