#include "iostream.h"
class CMatrix
{
public:
CMatrix(int r,int c)
{
row=r;col=c;
element=new double[row*col];
}
double &operator()(int x,int y)
{
return element[col*(x-1)+y-1];
}
double &operator()(int x,int y) const
{
return element[col*(x-1)+y-1];
}
~CMatrix(){delete []element;}
private:
double *element;
int row,col;
};
void main()
{
CMatrix m(5,8);
for (int i=0;i<5;i++)
m(i,1)=i+5;
for (i=0;i<5;i++)
cout<<m(i,1)<<",";
cout<<endl;
}
class CMatrix
{
public:
CMatrix(int r,int c)
{
row=r;col=c;
element=new double[row*col];
}
double &operator()(int x,int y)
{
return element[col*(x-1)+y-1];
}
double &operator()(int x,int y) const
{
return element[col*(x-1)+y-1];
}
~CMatrix(){delete []element;}
private:
double *element;
int row,col;
};
void main()
{
CMatrix m(5,8);
for (int i=0;i<5;i++)
m(i,1)=i+5;
for (i=0;i<5;i++)
cout<<m(i,1)<<",";
cout<<endl;
}
int iSample[10];
如果你想获得该数组的第5个数,就可以用iSample[4],其中“4”就是数组下标,它从0开始,所以第5个数的下标是4。
如int a[10],
那么a[3]表示的是距离数组首地址为3个int的值。
int a[10][10]表示分配10×10的连续存储空间。但二维数组本质上是一个一维指针。
如:
int * p;
int p = a;
但好像只有数组可以通过a[][]这种方式访问。指针如果写为p[][]会出错。
如动态定义个m×n的数组;
int **P;
P = new int *[m];
for(int i=0; i<m; i++)
P[i]=new int[n];这样完了后,就可以通过P[][]这种方式访问数组的元素。
>>可能大家没有仔细看我的程序,程序中数组下标是从-8开始,然后是0、8依次递增,在VC6中结果是5,6,7,8,9,这不是越界了吗?
你程序里面是这个意思的吗?好像你理解的不对吧?