A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

本帖最后由 幕夏 于 2014-7-6 15:38 编辑

看MJ老师的视频讲关于数组下标的问题时说,数组在定义时没有初始化,用变量当下标是正确的,但是我用VC试了一下,好像编译不了,但用Mac里的commend line里却能运行,这样说明编译器有区别,但是单纯对于C语言来说这样到底对不对?
  1. #include <stdio.h>

  2. int main(int argc, char *argv[])
  3. {        int count=5;
  4.         int ages[count];
  5.         ages[0]=10;
  6.         ages[1]=11;
  7.         ages[2]=12;
  8.         for (int i=0;i<5 ;i++ )
  9.         {
  10.                 printf("ages[%d]=%d\n",i,ages[i]);
  11.         }
  12.         return 0;
  13. }
复制代码



2 个回复

倒序浏览
VC没试,不过你这是标准的C数组定义,当然正确啦,不用太纠结这些过于细分的边边角角,往后看看会明白之前不懂的大部分问题~
回复 使用道具 举报
fantacyleo 来自手机 金牌黑马 2014-7-6 12:15:46
藤椅
这是编译器支持的c标准问题。以前的c标准不支持变量声明数组长度。c99标准才开始支持。mac编译器默认开启了c99标准。如果你编译时加上-std=c90,mac下也会报错
回复 使用道具 举报 1 0
您需要登录后才可以回帖 登录 | 加入黑马