c++中,error C2369: 'y' : redefinition; different subscripts

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++中,error C2369: 'y' : redefinition; different subscripts相关的知识,希望对你有一定的参考价值。

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<time.h>

//——定义变量,以24时段为例

#define NUM 1//粒子个数
#define N 100//循环次数
#define ysN 11//文件中约束条件个数
#define T 24//调度分为24个时段
#define W 48//粒子维数

//——目标函数、约束条件中的参数设置
double ys[T][ysN];//文件数组,将文件内容复制到数组中
int y[2*N];
double p[T],Y[T],C[T],B[T],S1[T],S2[T];
double S1min,S2min,S1max,S2max,Cmin,Cmax,Bmin,Bmax;

//——粒子群算法参数设置

double x[NUM][W],v[2*N];//位置x为W维,粒子个数为NUM个,x[粒子个数][维数],v[粒子个数]
double y[NUM],pi[NUM][W],pg[W],p;//y用于存储函数值,pi用于存储每个粒子历史最好点,pg用于存储所有粒子历史最好点,p用于存储粒子最好函数值

错误是
error C2369: 'y' : redefinition; different subscripts
see declaration of 'y'
error C2040: 'p' : 'double' differs in levels of indirection from 'double [24]'

参考技术A y重复定义了。
int y[2*N];

double y[NUM],pi[NUM][W],pg[W],p;//y用于存储函数值,pi用于存储每个粒子历史最好点,pg用于存。

p也重复定义了。
double p[T],Y[T],C[T],B[T],S1[T],S2[T];

double y[NUM],pi[NUM][W],pg[W],p;/本回答被提问者和网友采纳
参考技术B int y[2*N]; 和 double y[NUM], 重复定义了 y
double p[T], double p 重复定义了 p.

c++ 中char&的理解

c++ 中的char&是一个新的数据类型,叫字符型引用,实质是给已定义过的char型变量起一个别名。比如有:cahr x=22;char &y=x;,从此后x和y就是同一个变量,不仅值相等,而且它们的地址也相同。所以对x的操作也是对y的操作,反过来对y的操作也是对x的操作。比如若有一句y=7;,执行后x和y就都是7了…… 参考技术A

答:c++ 中的char&是一个新的数据是给已定义过的char型变量起一个是给已定义过的char型变量起一个别名。

以上是关于c++中,error C2369: 'y' : redefinition; different subscripts的主要内容,如果未能解决你的问题,请参考以下文章

C++编译错误提示 [Error] name lookup of 'i' changed for ISO '

Error in xy.coords(x, y, xlabel, ylabel, log) : ‘x‘ and ‘y‘ lengths differ

C++求助[Error]cannot convert 'const wchar_t*' to 'LPCSTR aka const char*

C++中error C2679: binary '>>':no operator defined which takes a right-hand operand of t

C++老是报错error C2248: 'left' : cannot access private member declared in class 'BinNode'

error C2143: syntax error : missing ')' before ''是啥意思