eug*_*ene 32 c c++ arrays initialization
说我想初始化myArray
char myArray[MAX] = {0};
char myArray[MAX] = {0,};
char myArray[MAX]; memset(myArray, 0, MAX);
Run Code Online (Sandbox Code Playgroud)
它们是否相同或优先于另一个?
谢谢
Meh*_*dad 33
实际上,我个人建议:
char myArray[MAX] = {};
Run Code Online (Sandbox Code Playgroud)
他们都做同样的事情,但我更喜欢这个; 这是最简洁的.= d
顺便说一句,做笔记是char myArray[MAX] = {1};
不会不初始化所有的值比1!它只将第一个值初始化为1,其余值为零.因此,我建议你不要写,char myArray[MAX] = {0};
因为它对某些人来说有点误导,即使它正常工作.
Syl*_*sne 21
他们是等价的有关生成的代码(至少在优化版本),因为当一个数组初始化与{0}
语法,未明确指定的所有值0被隐式初始化,编译器会知道能插入到呼叫memset
.
唯一的区别是风格.选择取决于您使用的编码标准或您的个人喜好.