注册 登录
编程论坛 C++教室

[求助]数组初始化的问题

a8451727 发布于 2007-08-02 15:18, 1195 次点击
很郁闷为什么数组不能初始化为动态值?

如果我想要个动态的可以吗?

如果int a[]={0};了,还可以装两个数以上吗?

或者可以像这样装数吗?:
for(int i=0;i<100;i++){
int a[]=i; //a[] 在循环里面定义,不过好象里面定义的出了循环又没用了。
}

其实我是想这样:
int a[10];
int i,j,k;
for(i=0;i<10;i++){
a[i]=j++;
}
for(i=0;i<10;i++){
if(i%3!=0)
cout<<a[i];
k++;
}

int b[k];//用b[k]装(i%3!=0)的数。
.
.
.
}

12 回复
#2
aipb20072007-08-02 16:36
数组大小是编译时的常量。

要不定的大小就动态数组。
#3
a84517272007-08-02 18:55
以下是引用aipb2007在2007-8-2 16:36:32的发言:
数组大小是编译时的常量。

要不定的大小就动态数组。

有点不明白
a[]...?

#4
野比2007-08-02 19:56

运行时动态数组..
是用malloc()函数或new关键字实现的..

int a=5;
int *p=new int[a]

#5
a84517272007-08-02 21:07
以下是引用野比在2007-8-2 19:56:28的发言:

运行时动态数组..
是用malloc()函数或new关键字实现的..

int a=5;
int *p=new int[a]

列个简单的例子我看下啊谢谢。

[此贴子已经被作者于2007-8-2 21:08:00编辑过]

#6
野比2007-08-02 23:25
以下是引用a8451727在2007-8-2 21:07:46的发言:

列个简单的例子我看下啊谢谢。


看到我写的"如"字没有?...
a是一个变量...
p是一个指针...
p[index]就是第index号变量元素...

#7
alleks2007-08-03 01:27
应该用常量
以下是引用野比在2007-8-2 19:56:28的发言:

运行时动态数组..
是用malloc()函数或new关键字实现的..

int a=5;
int *p=new int[a]

应该用常量才对:
const int a=5;
int *p=new int[a];

#8
不以物喜2007-08-03 17:34
也可以式者用容器,如 vector等 ,都封装好了
放心用
#9
a84517272007-08-03 22:36
如果像这样呢?
int a[10];
int i,j,k;
for(i=0;i<10;i++){
a[i]=j++;
}
for(i=0;i<10;i++){
if(i%3!=0)
cout<<a[i];
k++;
}

int b[k];//现在K是个变量,现在的值是7。
.
.
.
}

[此贴子已经被作者于2007-8-3 23:38:18编辑过]

#10
aipb20072007-08-03 23:14
以下是引用a8451727在2007-8-3 22:36:48的发言:
如果像这样呢?
int a[10];
int i,j,k;
for(i=0;i<10;i++){
a[i]=j++;
}
for(i=1;i<=10;i++){
if(i%3!=0)
cout<<a[i];
k++;
}

int b[k];//现在K是个变量,现在的值是7。
.
.
.
}

自己去试下不就好了,有的编译器似乎可以。

#11
野比2007-08-04 10:45
以下是引用a8451727在2007-8-3 22:36:48的发言:
如果像这样呢?
int a[10];
int i,j,k;
for(i=0;i<10;i++){
a[i]=j++;
}
for(i=0;i<10;i++){
if(i%3!=0)
cout<<a[i];
k++;
}

int b[k];//现在K是个变量,现在的值是7。
.
.
.
}

你想干什么?... k不是"现在""是个变量", 而是"一直都""是个变量"...

#12
aipb20072007-08-04 10:57

LZ,记住

你可以改变它值的即为变量。

5,3.14,“string”,const a = 10;
上面的几个表达式,你可以改变它的值吗?不可以吧,所以他们是常量。

#13
a84517272007-08-04 14:08

谢谢大家。
我再多看点书再去想这个问题好了

1