C语言静态数组
静态数组最多能开到2K字节,相当于1024个整数。malloc开辟的动态数组容量则与机器的内存总容量和当前占用的内存容量有关系。
关于数组定义在栈中维度大小受限,想要定义在堆中,可以用malloc申请。详细看我写的案例备注吧。
全局量,允许比较大的数组 int main(){ a[999999]=999999;printf(%d ,a[999999]);return 0;} 若int a[1000000];放到main()里,就不行了。
ANSI/ISO C允许对声明的非静态数组也进行一次性初始化。所以在支持ANSI/ISO C标准的编译环境下,函数块内写 static int a[3] = { 2, 4, 5 };和 int a[3] = { 2, 4, 5 };都对。
动态数组是指在声明时没有确定数组大小的数组,即忽略方括号中的下标。使用时,可随时用ReDim语句(C语言中用malloc语句)重新指出数组的大小。动态数组,是相对于静态数组而言。
数组大小一旦确定就不能改变。数组长度必须在编译时确定,可以使用malloc函数在程序运行时动态分配所需“数组”长度。定义数组需要指定数组的长度,然后系统会根据这个长度分配固定的内存大小。
C语言中static是做什么用的?
在C语言中,static的作用有三个,分别如下:隐藏;当同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。
static 用来说明静态变量。如果是在函数外面定义的,那么其效果和全局变量类似,但是,static定义的变量只能在当前c程序文件中使用,在另一个c代码里面,即使使用extern关键词也不能访问这个static变量。
有两种用法:static修饰局部变量,成为一个局部静态变量。
C语言中的静态变量
1、static在c语言中是“静态”的意思,用于在函数中声明“静态变量”用,在每一次调用后,该变量并不在函数返回时立即释放,变量中保存的值,可以保留到下一次调用时继续有效。
2、用static声明的变量是静态变量,比如static int a =4;这个a的初始值为4(仅仅是初始值),并且这个变量是一直存在的。几个a并不是同一个a,我们可以把程序中的a改一下名字,方便理解。
3、形式不同:静态变量是在定义的时候,有static 修饰的变量,形式为static TYPE var_name = init_value;动态变量,形式为TYPE var_name = init_value;即没有static 修饰,其中的=init_value均可省略。