C 初始化字符数组时,剩余的空间是零填充还是未初始化?
给定 这将初始化foo以包含'b'、'a'、'r',0。剩余的1020个字符是零初始化还是未初始化C 初始化字符数组时,剩余的空间是零填充还是未初始化?,c,C,给定 这将初始化foo以包含'b'、'a'、'r',0。剩余的1020个字符是零初始化还是未初始化 我认为上面的内容与'char foo[1024]={'b','a','r','0'是一样的;与初始化聚合一样,未提及的任何成员都将初始化为零?如果数组/聚合以某种方式初始化[编辑:使用静态初始值设定项],则剩余未指定的条目将被置零,是。是,未初始化的数组元素将为零。例如: 如果初始值设定项提供的元素太少,则其余数组元素假定为0: char foo[1024] = "bar"; 相当于 int v
我认为上面的内容与'char foo[1024]={'b','a','r','0'是一样的;与初始化聚合一样,未提及的任何成员都将初始化为零?如果数组/聚合以某种方式初始化[编辑:使用静态初始值设定项],则剩余未指定的条目将被置零,是。是,未初始化的数组元素将为零。例如: 如果初始值设定项提供的元素太少,则其余数组元素假定为0:
char foo[1024] = "bar";
相当于
int v5[8] = { 1 , 2 , 3 , 4 };
int v5[] = { 1 , 2 , 3 , 4 , 0 , 0 , 0 , 0 };