2016 - 2024

感恩一路有你

伪数组和数组的区别 C语言为什么不建议把变量作为数组长度?

浏览量:2556 时间:2021-03-10 20:05:15 作者:admin

C语言为什么不建议把变量作为数组长度?

数组的大小不能用变量表示,因为在编译连接过程中,应该根据您设置的长度为数组分配内存。如果它是一个变量,就没有办法分配它。您可以使用符号常量来求解它。首先,使用:#define M 100

#define N 100,然后在程序中定义u[M[N]二维数组。如果它不一定是100,它可以是任何正整数。

在C语言中,所有变量空间在程序操作开始时应用于系统,包括和指针。除了malloc函数等一些动态应用方法外,它还需要空间。任何应用程序空间系统都不允许读写。如果数组大小是变量定义,则在程序运行之前无法确定数组大小,并且无法应用它,因此不允许使用它。解决方案如上所述,例如:

int a[n

可以更改为

int*const a=(int*)malloc(sizeof(int)*n)

,这样变量就可以直接用作数组,包括[1]。因为“[]”中的圆括号运算符只会偏移其中的地址数并获取值。例如,

a[1

相当于

*(a 1)

,星号后的常量修饰符表示指针声明后不能更改,即只能指向获取的空间,这完全符合数组的性质。

015]更多答案(9)

伪数组和数组的区别 伪数组 js伪数组转数组

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。