下面两个c语句之间的差异
有人能告诉我以下两个c语句在初始化、表的范围和任何其他方面的区别吗 注意:这两个变量都是全局变量下面两个c语句之间的差异,c,static,initialization,extern,C,Static,Initialization,Extern,有人能告诉我以下两个c语句在初始化、表的范围和任何其他方面的区别吗 注意:这两个变量都是全局变量 unsigned int *table[100] = {NULL}; static unsigned int *table[100] = {NULL}; table是两个声明中类型为unsingned int的指针数组 区别在于static数组的可见性仅限于声明此数组的文件 这个链接会有帮助 相似性: 两者都是100个整数指针的数组 即使您没有初始化,这两个都将初始化为NULL 它们被宣布为全球
unsigned int *table[100] = {NULL};
static unsigned int *table[100] = {NULL};
table
是两个声明中类型为unsingned int
的指针数组static
数组的可见性仅限于声明此数组的文件unsigned int *table[100] = {NULL};
表
是指向非单整数
的指针数组,并将整个数组元素初始化为NULL
static unsigned int *table[100] = {NULL};//declared as static means initialized only once
表
是指向静态非单精度int
的指针数组,并将整个数组元素初始化为NULL
请注意…={NULL}
仅将数组的第一个元素初始化为NULL
*所有其他元素都被初始化为0
,根据使用的C实现,这两个元素不一定都是相同的。@P.J.Meisch:我觉得是标题的副本,但不是内容的副本。参考我之前的评论:请参阅我在OP:@alk sir上的评论,但其余元素隐式为空。我是对还是错?不一定。请查看我刚刚添加的链接,作为对OP的(另一)评论。请查看我对OP的评论:
static unsigned int *table[100] = {NULL};//declared as static means initialized only once