C语言初始化数组时,一定要使用静态存储吗?
在网上看到这个:初始化数组时,未使用静态存储inta[3]={0,1,2};这样初始化数组是不对的。C语言规定只有静态存储(static)数组和外部存储(extern)数...
在网上看到这个:
初始化数组时,未使用静态存储
int a[3]={0,1,2};
这样初始化数组是不对的。C语言规定只有静态存储(static)数组和外部存储(extern)数组才能初始化。应改为:
static int a[3]={0,1,2};
真的是这样吗?谭浩强那本书上说,可以在定义数组时初始化,如:
int a[3] = {0,1,2};
为什么我在网上搜到的会是上面的说法呢?那种是对的?
C语言是不是不能这样给数组赋值:
main()
{
int a[3];
a[3] = {0,1,2};
}
哪位大虾帮我解释一下好吗?
main()
{
int a[3];
a[3] = {0,1,2};
}
这样是不行的吧?
那么:
main()
{
static int a[3];
a[3] = {0,1,2};
}
这样行不行呢? 展开
初始化数组时,未使用静态存储
int a[3]={0,1,2};
这样初始化数组是不对的。C语言规定只有静态存储(static)数组和外部存储(extern)数组才能初始化。应改为:
static int a[3]={0,1,2};
真的是这样吗?谭浩强那本书上说,可以在定义数组时初始化,如:
int a[3] = {0,1,2};
为什么我在网上搜到的会是上面的说法呢?那种是对的?
C语言是不是不能这样给数组赋值:
main()
{
int a[3];
a[3] = {0,1,2};
}
哪位大虾帮我解释一下好吗?
main()
{
int a[3];
a[3] = {0,1,2};
}
这样是不行的吧?
那么:
main()
{
static int a[3];
a[3] = {0,1,2};
}
这样行不行呢? 展开
6个回答
展开全部
static和extern和定义数据无关,只和变量的使用范围有关,static静态全局变量的使用范围是当前文件,extern是文件间的访问。
static int a[] = {1,2,3};
int b[] = {1,2,3};
void main()
{
int i = a[0]; // 这时候i = 1
int k = b[0]; // 这个时候 k != 1
}
建议不要看谭浩强的书,这里有本书,Bjarne Stroustrup - The C++ Programming Language
看就看大师写的。
static int a[] = {1,2,3};
int b[] = {1,2,3};
void main()
{
int i = a[0]; // 这时候i = 1
int k = b[0]; // 这个时候 k != 1
}
建议不要看谭浩强的书,这里有本书,Bjarne Stroustrup - The C++ Programming Language
看就看大师写的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询