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

是存放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学习者快速成长!