数组初始化的问题

数组初始化的问题,第1张

分配的空间,比如

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替换成参数传过来的长度就好

}

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/13492114.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-09-01
下一篇2025-09-01

发表评论

登录后才能评论

评论列表(0条)

    保存