不同编译器(Code::Blocks 和 VC)对语法的支持

jeff_nie 2010-11-20 02:31:18
1. 《C和指针》上说,对数组初始化时,如果初始化值的个数大于数组元素是非法的,但在Code::Blocks 10.05上确未提示任何错误或警告信息,但在VC 6.0和VS 2008下都报相同的错误:初始化值太多。
int c[3] = {1, 2, 3 ,4}; // 是否非法


2. 定义一个指向数组的指针时,以下语句Code::Blocks 10.05下同样编译正常,而在VC 6.0和VS 2008下也报同样的错误:int matrix[][]无法转换为int *
int matrix[3][10];
int *mp = matrix; // 是否非法

对于上面两个语法,标准是否有明确定义呢?还是这个语法确实会在不同编译器下产生不一样的结果。谢谢!
...全文
75 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mark0904 2010-11-20
  • 打赏
  • 举报
回复
这两个都是非法的。

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧