c语言静态存储数组的赋值问题。
c语言规定,只有静态存储数组才能初始化,静态存储数组要用static定义,为什么谭浩强的书在定义字符数组时从来不用static,而是直接赋值?...c语言规定,只有静态存...
c语言规定,只有静态存储数组才能初始化,静态存储数组要用static定义,为什么谭浩强的书在定义字符数组时从来不用static,而是直接赋值?... c语言规定,只有静态存储数组才能初始化,静态存储数组要用static定义,为什么谭浩强的书在定义字符数组时从来不用static,而是直接赋值? 展开
展开
1个回答
展开全部
使用static定义静态数组,这个数组就会在程序的整个生命周期里存在,并且这个数组会分配并放在程序的.bss段中,这个段中的所有数据都是会被自动初始化为0的,如果是声明在函数中,那么调用这个函数每次使用的数组都是同一个数组,如果不是在函数中定义,那么这个数组就仅限于在此文件中可用。
而没有static声明的数组,这个数组会在调用这个函数所在的栈帧中分配,也就是在栈上分配,这个数组就不会被初始化,数组中的值是随机的,如果在函数中定义,那么调用这个函数时每次使用的数组一般是不同的。
至于要不要用static来声明,一方面是看你是否需要这个数组被长久使用,另一方面就是看是否需要让它自动初始化为0,还有就是在其他文件中是否需要使用这个数组。
而没有static声明的数组,这个数组会在调用这个函数所在的栈帧中分配,也就是在栈上分配,这个数组就不会被初始化,数组中的值是随机的,如果在函数中定义,那么调用这个函数时每次使用的数组一般是不同的。
至于要不要用static来声明,一方面是看你是否需要这个数组被长久使用,另一方面就是看是否需要让它自动初始化为0,还有就是在其他文件中是否需要使用这个数组。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询