您的位置:

c语言定义数组可以不指定长度吗,c语言定义数组可以不指定长度吗

本文目录一览:

C语言声明数组变量时,在什么情况上,可不指定

你是想问不指定长度吗?不可以,c语言申请数组的时候必须指定长度。c89规定c语言子程序必须把变量声明放在开始。不指定长度的话,你可以使用动态分配方式,用malloc为其分配空间,这个时候你需要用指针来记录首地址,用起来和数组差不多。

C语言中可以定义不定长度的数组(即数组长度由变量确定)吗?

不可以,数组在创建时长度已经确定了,而且创建后也无法更改数组的长度,楼上说的malloc动态申请的内存也是已确定的,你都不能在 不破坏原有数据的情况下改变其大小。

那怎么储存未知大小的数据呢,在储存后怎样能随意的对其添加、更改、删除、查找等一系列操作呢?只用简单的数组肯定不行,需要用到别的数据结构,如链表、二叉树等等,总有一款适合你。在大家学到数据结构与算法的时候 ,一切难题都将迎刃而解。

最后补充一点,楼上有人说数组的长度不能用变量来确定,这是错误的。 C中有 变长数组 的概念呀(c99标准),“变长”的意思就是 可以用变量来指定数组的长度,而数组一旦创建 长度就无法变化了,而且变量必须赋值在先,变长数组才能创建。某些人不能因为无法正确的设置编译器支持c99标准,而否定了 变长数组 这个用法。

C语言定义数组一定要指定大小吗?

是的,c中数组定义时要指定大小。

当然,万事也不是绝对的。例如:1.作为形参的时候,可以不指定,因为在函数调用的时候,数组会转为指针的。2.当为字符串数组时,char ST[]="hello word"这儿定义了一个ST字符数值,不需要你自己去指定大小,系统会自动生成长度为11.