
分配的空间,比如
int
a[10];
这就是在定义时由系统给你分配了10个int类型的空间,这个空间是可以初始化的,比如
int
a[10]
=
;
那么在这个定义之后,系统会首先分配10个int类型的存储空间,然后把大括号里面的数字分别的,按顺序放到这10个空间里。你所做的只是写这么一句,而数组赋值的 *** 作就由系统完成了。当然,初始化与否看你的需求,初始化不是强制性 *** 作,想初始化就初始化,不想也没问题,还是上面的例子继续:
int
a[10];
这里定义了,但是没初始化,这没有任何问题,以后你可以自己往里面赋值,比如
a[1]
=
8;
a[5]
=
3;
或者
for(int
i
=
0;
i
<
10;
i++)
a[i]
=
i;
等等
对于动态数组,不能被初始化,因为动态数组在定义时只是个指针,比如
int
a;
这里变量a只是个指向int类型的指针,而不是数组。动态分配有10个int类型元素的数组,如下:
a
=
(int)
malloc(10sizeof(int));
很明显,指针a在定义的时候不能被初始化,比如这样写就是错误的:
int
a
=
;
/
错误!
/
因为a是只有4个字节的指针,没有可用的存储空间给需要初始化的变量。
所以,静态数组从语法上来说允许被初始化。作为程序员来说,你可以初始化静态数组,也可以不初始化,由你决定。
在无参构造方法中,
public Controller(){
//构造函数中初始化 players 数组
players = new MediaPlayer[12];
players[0] = xx;players[1] = xx1;players[2] = xx2;players[11] = xx11;//赋值
}
有参构造方法,就看参数能提供什么了
public Controller(MediaPlayer[] players){
//构造函数中初始化 players 数组
thisplayers = players;//由外部在实例化类时,传入一个已经创建好的数组,直接赋值给成员变量即可
//假如构造方法中的参数是数组的长度,那么定义代码跟无参中类似,只是把无参中的12替换成参数传过来的长度就好
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)