2011-03-27 72 views
0

的数组这是不特定于任何编程语言,问题是“寻找指定值的指数在正数的数组。声明未知大小

现在的问题是,在下面的代码可以声明数组如何我都做到了。

{int n; 
read(n); 
int array[n]; 

......

,或者这是允许的?

{int n; array[n]; 
read(n) 

我在想第一个是正确的。

在此先感谢。

+2

数组声明的方式取决于您使用的语言。如果你正在编写伪代码,你可以自己决定,只要它传达了意图和期望的结果。该数组可以被声明为'array = []','int [] array = new int []','int array []','array = array()','array = {}'等等。您必须事先声明数组的大小,并在需要时用某些语言扩展数组。 – 2011-03-27 08:21:05

+0

谢谢,这很有帮助。 – 2011-03-27 08:24:08

+0

@Aleksi:由于问题是如何声明一个未知大小的数组(也就是“不特定于任何编程语言” - 又名伪代码),我认为您的评论是值得回答的。 – 2011-03-27 08:25:45

回答

1

就语法而言 - 这当然会依赖于编程语言。但是,假设编程语言静态地或多或少地行为并将数组视为内存中的静态分配块(而不是向量等)等,则第一个选项必须是正确的,因为只有在读取了n之后才能分配静态数组。

1

当然,第一个是正确的。在第二个声明数组时,n尚未设置。所以这是不正确的。

0

通常在创建数组时,您需要事先知道大小。您是否知道编译时或运行时的值可能取决于您的语言/项目要求,但在决定创建该大小的数组之前必须知道它的值。 (即第一种解决方案是正确的)

2

从评论转换由Merlyn Morgan-Graham

所建议的声明数组取决于你用什么语言的方法。如果你正在编写伪代码,你可以自己决定,只要它传达了意图和期望的结果。

该阵列可以被声明为array = []int[] array = new int[]int array[]array = array(),'array = {}`等。在一些语言中,你必须事先声明数组的大小,并且在一些语言阵列需要时扩大