如何在C/C++中数组的下标使用变量
3个回答
展开全部
对于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类似函数动态分配内存,这样的程序才是最安全的。
数组的引用下标可以是变量常量
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
展开全部
声明数组时不能使用变量座位下标,在引用数组元素时可以使用变量,如上所示.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
char a[100];
for(i=0;i<100;i++)
{
a[i]=i;
}
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
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询