首页 > 软件 > 编译错误 invalid types 'int[int]' for array subscript

编译错误 invalid types 'int[int]' for array subscript

软件 2022-05-13

C++语句错误 invalid types `int[int]' for array subscript

C++不支持动态数组,比如像Basic中的Redim,Pascal中的SetLength等;

C++中的动态数组是以动态内存分配来实现的,即用new和delete动态分配和删除数组空间,所以像int Rev[len];这样的定义是非法的。

根据楼主说的main函数中可以编译,那可能是在main函数中,len被赋予了常量,这样C++能够根据语法判断出实际是类似于int Rev[10]这样的定义,所以是可以编译通过的。

但是在函数中,上述定义是不行的,因为函数调用时,编译器无法判断传递来的参数是否是编译期的常量,这样就构成了动态数组的定义,这在C++中是非法的。

扩展资料:

在C++中,类是支持数据封装的工具,对象则是数据封装的实现。C++通过建立用户定义类支持数据封装和数据隐藏。

在面向对象的程序设计中,将数据和对该数据进行合法操作的函数封装在一起作为一个类的定义。对象被说明为具有一个给定类的变量。每个给定类的对象包含这个类所规定的若干私有成员、公有成员及保护成员。

完好定义的类一旦建立,就可看成完全封装的实体,可以作为一个整体单元使用。类的实际内部工作隐藏起来,使用完好定义的类的用户不需要知道类是如何工作的,只要知道如何使用它即可。

参考资料来源:百度百科-C++

c++错误: invalid types 'int[int]' for array subscript 实在搞不定了

把i和j声明为整型,如:int i,j;

max函数中array变量是int*类型,它是int数组bai,后面只能一个下标,写了多处array[I][j],当做二维数组来用。

max函数最后一个for循环,for循环应该有三部分,它们以分号隔开,这里只有一部分,没有分号隔开。

#include

using namespace std;

int max(int (*array)[100],int I,int J,int index,int index1);

int temp[100][100],judge[100][100],n;

int main( )

{

int i,j,arr[100][100],max1=0;

cin>>n;

for(i=0;i

baifor(j=0;j

cin>>arr[i][j];

for(i=0;i

for(j=0;j

{

dumemset(arr,-1,sizeof(temp)*100*100);

max(arr,i,j,i,j);

扩展资料:

编译器将C++语句转换成机器码(也称为目标码);如果这个步骤成功,下一步就是对程序进行链接,这需要用到链接器(linker)。链接器将编译获得机器码与C++库中的代码进行合并。C++库包含了执行某些常见任务的函数(“函数”是子程序的另一种称呼)。

例如,一个C++库中包含标准的平方根函数sqrt,所以不必亲自计算平方根。C++库中还包含一些子程序,它们把数据发送到显示器,并知道如何读写硬盘上的数据文件。

参考资料来源;百度百科-C++

C++编译提示invalid types 'int[int]' for array subscript

cout<<"argc["<c++错误代码invalid types 'int[int]' for array subscript函数 void tf(){} 中 你 写了声明: int cdcd,asasasa,a=0; 表明 a 是局部量,是简单的int 型变量,不是 全局量中的 a 数组。 接着,出现了 语句: cdcd=a[asasasa]; 这里的 a 却是数组,所以有语法错误。 你可以删去 int a=0; 的声明。那么 cdcd=a[asasasa]; 这句就对了。就没有这条错误了。 但下面 会 出现 a++; a>=5; a=0; 的错误。 或许,你可以把 a 改 aa: int cdcd,asasasa,aa=0; a++; 改 aa++; 把 a>=5;改 aa>=5;把 a=0; 改aa=0; 也可

invalid types `int[int]' for array subscript

你的代码中出现了两个a,一个是数组名,一个是int型变量。改变其中一个即可,修改后的代码如下:

#include
usingnamespacestd;
intmain()
{
intm,n,i,j,k;
cout<<"Pleaseinputm,n:"< cin>>m>>n;
cout<<"Pleaseinputarray:"< intarr[m][n];
for(i=0;i {
for(j=0;j {
cin>>arr[i][j];
}
}
for(i=0;i {
intbiggest=0,a=0,b=0,small=10;
boolflag=true;
for(j=0;j {
if(arr[i][j]>biggest)
{
a=i,b=j,biggest=arr[i][j];
}
}
for(k=0;k {
if(biggest>arr[k][b])
{
flag=false;
}
if(flag=true)
{
cout<<"mat["< }

}
}
return0;
}

标签:信息技术 编程 编程语言 int types

大明白知识网 Copyright © 2020-2022 www.wangpan131.com. Some Rights Reserved.