一直以爲 int a[256]={0};是把a的所有元素初始化爲0,int a[256]={1};是把a所有的元素初始化爲1. 調試的時查看內存發現不是那麼一回事,翻了一下《The C++ Programming Language》總算有定論。PDF的竟然不然複製,就把它這章翻譯了,如下 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}; //錯誤:不是數組賦值 } 如果你想這樣的複製的話,請使用 vector(16章第三節) 或者 valarray(22章第四節)。 字符數組可以方便地採用字符串直接初始化(參考第五章 2.2小節) 譯註: 就是 這樣啦 char alpha []="abcdefghijklmn";
C++數組初始化正確理解
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
鼠標控制軟件有可能和虛擬機軟件產生衝突
氫氦
2024-06-13 14:37:05
比特幣區塊檢查
weiwei22844
2024-06-13 14:36:55
自定義MyBatis插件
燈塔下的守望者
2024-06-13 14:36:45
高性能版本的零內存分配LikeString函數(ZeroMemAllocLikeOperator)
VAllen
2024-06-13 14:35:54
【java基礎】java線程的四種創建方式
金大鑫要堅持
2024-06-13 14:32:24
【java基礎】線程池的狀態流轉
金大鑫要堅持
2024-06-13 14:32:24
微服務實踐之使用 kube-vip 搭建高可用 Kubernetes 集羣
hiningrise
2024-06-13 14:30:24
Keyboard Maestro 常用的 Actions 記錄
水車
2024-06-13 14:27:44
一款.NET開源、功能強大、跨平臺的繪圖庫 - OxyPlot
追逐時光
2024-06-13 14:27:24
一個開源且全面的C#算法實戰教程
追逐時光
2024-06-13 14:27:24
重新搞黑魂1的mod
張博的博客
2024-06-13 14:25:14
C語言--右移 左移
張博的博客
2024-06-13 14:25:14
HbuilderX,找不到rollup/rollup-win32-x64-msvc
HelloLLLLL
2024-06-13 14:22:53