c语言数组怎么存小数 C语言,可变长数组?
C语言,可变长数组?
我不会看冒泡排序的算法部分。我直接告诉你,你不知道错误的原因。你的第一种写作方式:int n=1,a[n],I=0,j=0,k=0。这里定义了n=1,在这一行中还定义了[n]。然后编译器将在这里直接为序列a分配内存。也就是说,确定阵列A的大小,即1。我不知道你是否学会了内存分配。我给你一个简短的解释。您可以在线搜索详细信息。例如,一个具有五种整数类型的数组可以定义为[5],但也可以按如下方式获得:int*a=(int*)malloc(sizeof(int)*5)也就是说,我们将内存分配给一个指针以获得一个数组。[5]的定义还要求编译器在编译程序时分配内存。编译器将根据您的代码优化您的程序,并将代码转换为汇编代码。另外,机器代码说得太多了。我将继续分析修改后的代码int n=1,I=0,j=0,K=0printf(“please input the length of the array:”)scanf(%d“,&n)int a[n];//此时,由于您在声明数组之前读入了n,因此a是根据您输入的数字确定的数组大小。你知道我的意思吗?
如何声明可变长度的数组,C语言?
C99标准中增加了可变长度阵列。你的编译器无法使用它。它只能说明它不支持C99的这个特性
首先,严格来说,它不能有任何长度。内存是有限的,超过一定的长度,是不可能保存的,虽然这个值可能超大,但总量有限。其次,所谓的任意长度实际上是一个可变长度数组。然后,如果您事先不知道数组的大小,则需要输入来确定数组的大小。关键是要打开一个数组要存储多大。一般来说,有几种情况。1直接打开一个足够大的数组。例如,如果您不知道它有多大,但最大值不超过1000,则可以直接打开包含1000个元素的数组。动态分配,使用malloc动态分配内存。Realloc用于在可能出现短缺时进行重新分配。
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)
,星号后的常量修饰符表示指针声明后不能更改,即只能指向获取的空间,完全符合数组的性质。
[0 15
更多答案(9)
C语言为什么不建议把变量作为数组长度?
c语言中怎么实现可变长数组,c99里面是支持的是吧?
以前版本的C99没有它。数组大小必须是常量或常量表达式,并且C99版本添加了可变长度数组
c语言数组怎么存小数 c语言可变数组怎么定义 C语言输入数组
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。