如何在C/C++中数组的下标使用变量

 我来答
z747803941
2013-08-05 · 超过17用户采纳过TA的回答
知道答主
回答量:58
采纳率:0%
帮助的人:40.1万
展开全部
对于ANSI 标准C及C++,这都是标准没有定义的,也就是说,最好认为不可以用变量代入数组个数

C99标准中加入了这个特性,但C99标准还未流行。

对于C++编译器,gcc扩充了这个功能,但是它未被标准支持所以这样的程序是不具备编译可移植性的。早期的vc++6.0不支持此特性。

但是你若在c++中定义const int n = 5;
则可以int a[n];
因为c++中,const型变量是作为编译时常量的。
但在ANSI C中却不行,因为C中const型变量是作为只读的变量出现的,所以不能用其定义数组个数

虽然在汇编的角度看,int a[n];这种语句即使n是变量,也是很好实现的,但c/c++出于多种考虑(例如n的不确定性以及楼上提到的一点原因)拒绝了它

要模拟动态数组,最好使用new,malloc类似函数动态分配内存,这样的程序才是最安全的。

数组的引用下标可以是变量常量
追问
我要的是解决方案,C语言中没有malloc 函数
追答
C语言怎么没有malloc,使用时包含malloc.h
扈怀炜4h
2013-08-05 · TA获得超过6039个赞
知道大有可为答主
回答量:6907
采纳率:67%
帮助的人:1361万
展开全部
声明数组时不能使用变量座位下标,在引用数组元素时可以使用变量,如上所示.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cqpcy
推荐于2016-11-09 · TA获得超过658个赞
知道小有建树答主
回答量:746
采纳率:66%
帮助的人:365万
展开全部
char a[100];
for(i=0;i<100;i++)
{
a[i]=i;
}
追问
int n;
int array[n], after[n];
char flag[n];

shu ru fa you wen ti le , ru he xiang zhe yang zi qi ta zhong lei shi de ye xing
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式