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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

这样确定可以吗?
  1. void test(){
  2.     int n;
  3.     scanf("%d",&n);
  4.     int array[n];
  5.     for (int i = 0; i<n; i++) {
  6.         array[i]=i+1;
  7.         printf("array[%d] = %d\n",i,array[i]);
  8.     }
复制代码


12 个回复

倒序浏览
完全可以
回复 使用道具 举报
好好学习!!加油
回复 使用道具 举报
可以啊....有什么不可以
回复 使用道具 举报
严格来说,是不可以的.
这是C99标准的额外支持.

你叫一个专业学习C语言的人来看,对来他来说绝对是毁三观的
回复 使用道具 举报
可以,声明时可以让变量作为数组长度,但初始化时不能用变量作为数组长度了
回复 使用道具 举报
当你输入n的时候这个数组的长度就确定了                                       
回复 使用道具 举报
批量初始化的时候不可以.
回复 使用道具 举报
准确的说, 你这不是长度可变的数组,只能说是根据用户输入的数值定义相应长度的数据,长度可变的数组应该是先定义一个长度固定的数组,然后对数组的长度做增加和减少的操作,C语言最后的《通讯录》案例会用到可变数组,但是可变数组要牵扯到链表,但是视频中并没有介绍链表,而是用了另一种方式代实现,你看到C语言最后一天的视频就会知道了!
回复 使用道具 举报
最爱舒儿 发表于 2016-3-27 00:16
当你输入n的时候这个数组的长度就确定了

可是在谭浩强的书中他说这样是不允许的
回复 使用道具 举报
堕落天使 发表于 2016-3-27 08:12
准确的说, 你这不是长度可变的数组,只能说是根据用户输入的数值定义相应长度的数据,长度可变的数组应该 ...

也就是说数组长度并不一定是固定的?
回复 使用道具 举报
张立鹏 发表于 2016-3-27 22:17
可是在谭浩强的书中他说这样是不允许的

这是xcode做的优化,用变量定义数组的长度,其他编译器可能就不能用了
回复 使用道具 举报
堕落天使 发表于 2016-3-28 17:47
这是xcode做的优化,用变量定义数组的长度,其他编译器可能就不能用了

哦哦,这样啊,那在一般开发中会有规定不许这样做么
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马