char var [] = {0};和char var [1];相当于C?

时间:2015-05-27 12:46:30

标签: c arrays memset

这条线会做什么?

char var[] = {0};

这相当于以下内容吗?

char var[1];
memset(var, 0, NULL); 

1 个答案:

答案 0 :(得分:3)

char var[]var定义为char数组,其中size由初始化列表大小决定。

因此char var[] = {0}相当于char var[1] = {0}

在以后的代码段中,var可能首先未初始化(如果是局部变量,我认为它跟随memset),然后设置为全零。(假设你的意思是memset(var, 0, 1))尽管两个片段的可观察效果是相同的,但编译器可能会生成不同的指令,或者编译器可能会选择调用memset,这可能会在以后的片段中添加函数调用开销。