C语言的数组初始化
http://blog.csdn.net/sibylle/article/details/2026915
一直以為?int?a[256]={0};是把a的所有元素初始化為0,int?a[256]={1};是把a所有的元素初始化為1.
調試的時查看內存發現不是那么一回事.
5.2.1???數組初始化?
數組可以用一個列值來初始化,例如
?????????int?v1[]?={1,2,3,4};
?????????char?v2[]={'a','b','c',0};
當數組定義時沒有指定大小,當初始化采用列表初始化了,那么數組的大小由初始化時列表元素個數決定。所以v1和v2分別為?int[4]?和char[4]類型。如果明確指定了數組大小,當在初始化時指定的元素個數超過這個大小就會產生錯誤。例如:
?????????char???v3[2]?={'a','b',0};???//錯誤:太多的初始化值了
?????????char???v3[3]?={'a','b',0};???//正確
如果初始化時指定的的元素個數比數組大小少,剩下的元素都回被初始化為???0。例如
?????????int???v5[8]={1,2,3,4};
等價于
??????????int???v5[8]={1,2,3,4,0,0,0,0};
注意沒有如下形式的數組賦值:
?????????void?f()
?????????{
?????????????v4={'c','d',0};???//錯誤:不是數組賦值
?????????}
轉載于:https://www.cnblogs.com/ljygoodgoodstudydaydayup/p/3960659.html
總結
- 上一篇: Perforce
- 下一篇: Android常用类库包介绍