const类型设置数组大小之C和C++的区别

  今天一哥们问我,C语言中,const int型的变量能不能设置数组大小,我一想,以前C++经常这样用,这个完全可以的啊,结果被告知是错误的。然后我果断写了test.c,内容如下:

#include <stdio.h>
int main()
{
        const int a=2;
        const int b=3;
        int array[a+b];
        return 0;
}

  gcc编译后通过,于是反问对方,这不是可以么。顺便在他回复之前上网查了下,网上说这样也是非法的。这时候哥们发过来一条消息,说这样可以,但是int array[a+b]={1,2,3,4,5};  就编译不过了。

  我试了试gcc和g++,结果gcc真的通不过了,g++正常。

  局部的数组定义是在堆栈段,是不需要在编译阶段确定数组大小的,这里不能用变量定义数组大小少了一些灵活性。不过还好,g++是可以这么做的。

转载于:https://www.cnblogs.com/ocean1100/articles/4235109.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值