请问如何定义数组的长度为任意?

来源:百度知道 编辑:UC知道 时间:2024/06/05 19:31:51
我的意思是如int a[];让用户输入数组长度n;例如n=5;那么数组就为a[5];n=6;那么数组就为a[6].
在C中如何实现?
在Java中又如何实现?

数组类型说明 在C语言中使用数组必须先进行类型说明。
数组说明的一般形式为:

类型说明符 数组名 [常量表达式],……

其中,类型说明符是任一种基本数据类型或构造数据类型。 数组名是用户定义的数组标识符。 方括号中的常量表达式表示数据元素的个数,也称为数组的长度。
例如:
int a[10]; 说明整型数组a,有10个元素。
float b[10],c[20]; 说明实型数组b,有10个元素,实型数组c,有20个元素。
char ch[20]; 说明字符数组ch,有20个元素。

对于数组类型说明应注意以下几点:

1.数组的类型实际上是指数组元素的取值类型。对于同一个数组,其所有元素的数据类型都是相同的。

2.数组名的书写规则应符合标识符的书写规定。

3.数组名不能与其它变量名相同,例如:
void main()
{
int a;
float a[10];
……
}
是错误的。

4.方括号中常量表达式表示数组元素的个数,如a[5]表示数组a有5个元素。但是其下标从0开始计算。因此5个元素分别为a[0],a[1],a[2],a[3],a[4]。

5.不能在方括号中用变量来表示元素的个数, 但是可以是符号常数或常量表达式。例如:
#define FD 5
void main()
{
int a[3+2],b[7+FD];
……
}
是合法的。但是下述说明方式是错误的。
void main()
{
int n=5;
int a[n];
……
}

6.允许在同一个类型说明中,说明多个数组和多个变量。
例如: int a,b,c,d,k1[10],k2[20];

-------------------------------------------------------------------