
正文
c语言中数组可以变换大小吗,c语言中数组定义大小可以使用变量么
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
c语言中是否支持变长数组?
1、在通信协议的开发中,变长数据缓存技术,如C99引入的0长度数组,为解决数据包长度的不确定性提供了强大工具。
2、在C99中新加入了对变长数组的支持,即数组的长度可以由某个非const变量来定义。可变数组的空间大小直到程序运行时才能确定,因此只有程序在运行时才能为程序分配空间。
3、c99以前的版本是没有的,数组大小必须是常量或者是常量表达式,c99版本才加入变长数组,如:int add(int n){ int a[n];...} 即使它叫做变长数组,但是数组大小一旦确定就不能改变了。
4、可变长数组只有执行了C99标准的编译器里才可以实现, 其他如VC0 VS编译器都没执行这个标准,所以没法使用可变长数组,只能动态分配数组。
相关问答
Q1: c语言数组的大小能不能在程序中设定?
数组大小一旦确定就不能改变。数组长度必须在编译时确定,可以使用malloc函数在程序运行时动态分配所需“数组”长度。定义数组需要指定数组的长度,然后系统会根据这个长度分配固定的内存大小。
首先C语言里面的数组,一旦定义好了,是无法改变类型和长度的,也不是指针,不能改变指向的内容,所以如下这种写法 int a[10], b[10];a = b;是无法编译的。
C语言数组的长度是预先定义好的,在整个程序中固定不变。操作方法如下:首先,点击进人visual studio,然后新建一个c项目。接着,在源代码中添加c项目所使用的头文件,输入即可,如下图所示。
只需要在最后delete a;就可以释放为a分配的内存空间。C当中没有new和delete的话可以用malloc和free,两者等价。以上的方式即可以实现“某种意义下”的无长度限制的一维数组。
不可以,数组在创建时长度已经确定了,而且创建后也无法更改数组的长度,楼上说的malloc动态申请的内存也是已确定的,你都不能在 不破坏原有数据的情况下改变其大小。
数组大小定义在编译连接阶段就已经决定了,所以你不能在程序执行的时候,采用动态赋值的方法来决定数组大小。如果想要动态定义一个指定大小的内存,可以采用malloc或者realloc的函数来进行分配。
Q2: 怎样在c语言中比较一个数组中元素的大小?
if( a[i]max ) //比较元素大小,记录最大元素及其下标 { max = a[i];_max = i;} } 最后 a[_max] 就是最大元素,值同时也保存在变量max里。
首先打开CodeBlocks。创建一个新项目。项目语言,选择“c”。我们将项目名称命名为“MaxNum”,然后下一步,“finish”。打开 “main.c”文件。用数组将10个数存入其中即可。
C语言中字符是使用char来定义的,使用关系运算符(,=)即可对字符进行比较。在编译器中定义a、b两个字符型变量,并为其赋值,按照如图所示编写代码。运行代码后,我们可以得到如图所示结果。
Q3: C语言中怎样定义一个可变大小的数组呢?我想根据自己的需要输入数组的大...
1、这里我们先建一个固定长度的数组,如下图,数组长度为1000 然后就需要用到循环了,并且设置一个按键“回车键”跳出循环。这样,不断循环就可以不断地将数字存进数组里。当我们按回车键的时候就会跳出循环,结束输入。
2、使用动态数组可以实现变长度数组。建动态数组,其他就像数组一样使用就行了。
3、C\C++本身不支持动态数组,但是可以通过动态申请内存实现由键盘输入长度的方式确定数组长度。实现代码如下:int num;cout“请输入数组大小”;cinnum;int *p=new int[num];//这里就可以使用这个动态数组了。
4、C语言支持定义一个不显式定义长度的数组,即通过初始化数据来分配数组长度。比如int a[] = {1,2,3,4,5}; 数组a的长度没有显式给出,由于有5个初始化数据,所以分配空间长度为5个int型。
Q4: c语言中数组为什么不可改变大小?
1、数组大小一旦确定就不能改变。数组长度必须在编译时确定,可以使用malloc函数在程序运行时动态分配所需“数组”长度。定义数组需要指定数组的长度,然后系统会根据这个长度分配固定的内存大小。
2、是的,c中数组定义时要指定大小。当然,万事也不是绝对的。例如:作为形参的时候,可以不指定,因为在函数调用的时候,数组会转为指针的。
3、在数组一章中,曾介绍过数组的长度是预先定义好的, 在整个程序中固定不变。C语言中不允许动态数组类型。例如: int n;scanf(%d,&n);int a[n]; 用变量表示长度,想对数组的大小作动态说明, 这是错误的。
4、你用的是值传递,就是说你把主函数中数组的值赋给了被调用函数中,这个值就给了被调用函数中的另一个变量。当然你在被调用函数中是无法改变主函数中的数组的。
5、要等到程序运行后,变量赋值后(数组定义语句不要写在变量赋值之前!),才能给数组分配内存。变长数组本质还是静态数组(定义前大小可变,但定义后不能改变大小)。要定义动态数组需要用malloc函数来申请内存。
Q5: C语言中可以定义不定长度的数组(即数组长度由变量确定)吗?
c语言不能使用变长数组,C语言中,直到C99标准出现之前,声明数组时在方括号内只能使用整数常量表达式,也就是说,不能用变量来控制数组的长度,只能用常量来控制。如果想要使用可以通过自己动态分配空间来实现。
C语言中不支持。C++中支持变长数组(你可以自行度娘变长数组和alloca函数),但是因为其实在栈上分配,不被推荐使用。
C语言中可以定义个数不确定的动态数组,但不是用uint8 array[];这样来定义的,这样会报错。
关于c语言中数组可以变换大小吗和c语言中数组定义大小可以使用变量么的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。




