c++ - char* a[100]是什么意思?
高洛峰
高洛峰 2017-04-17 15:23:51
0
3
1569

是存放100个字符串的数组吗?

//通过
char* binary[100] = { "0", "00", "01", "10", "000", "001", "010", "011", "100",
        "101", "110" };
//出错
char* binary[10] = { "0", "00", "01", "10", "000", "001", "010", "011", "100",
        "101", "110" };

上面就不会出错,而下面就会出错,为什么?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回覆(3)
大家讲道理

就是指標數組。
陣列中的每個元素類型為char*,分別指向各個字串首位址。
下面的陣列元素超過10個了。

黄舟
你的代码表示的意思是声明一个长度为n的,类型为char *的数组。这些数组的内容就是你声明这些char型字符的地址。下面为在VC6.0下编译的结果


error C2078: too many initializers
錯誤在於有過多的初始化內容,因為你宣告的長度為10,而你初始化中有11個內容,這樣會造成數組越界,所以不能通過編譯,而第二行因為100>11,所以能夠編譯通過。
修改之

伊谢尔伦

簡單來說你的程式碼就是產生了一個char型的二維數組,第一維是10,第二維是任意長度,就是char[10][]
所以說你下面的程式第一維長度超過了10報錯

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!