注册 登录
编程论坛 C++教室

求教小问题(数组指针,指针数组)

坏胖子猩猩 发布于 2009-10-19 21:17, 548 次点击
数组x[i][j] p是指向二维数组首元素的指针
*(p[0]+3*i+j) 和*(p[i]+j)和*(*(p+i)+j)
怎么表示的x[i][j]??

指针数组的问题:

int x[2][3]={{1,2,3},{4,5,6}};
int *px[2]={x[0],[1]};
什么意思? 有什么作用?

数组指针

赋值同上

int  (*px)[3]=x;

这个又是什么意思? 有什么作用?

谢谢各位回答
7 回复
#2
坏胖子猩猩2009-10-19 21:25
#include<iostream.h>
 
class A
{
public:
    A(int i){a=i;}
    void setA(int i) const{a=i;}
    int getA(){return a;}
    int getB() const {return b;}
 
private:
    int a;
    const int b=0;
};
 
int main()
{
    const A a1(1);
    cout<<"A="<<a1,getA()<<endl;
    cout<<"B="<<a1.getB()<<endl;
    return 0;
}

再求教个改错,这些都是教科书上的 就是public中的函数都怎么理解?
我想的头都晕了 也没明白第一语句什么意思。。。
求教
#3
flyingcloude2009-10-19 23:50
回复 2楼 坏胖子猩猩
class A
{
public:
    A(int i):b(0){a=i;}
    void setA(int i) {a=i;}
    int getA(){return a;}
    int getB() const {return b;}
private:
    int a;
    const int b;
};
int main()
{
    A a1(1);
    cout<<"A="<<a1.getA()<<endl;
    cout<<"B="<<a1.getB()<<endl;
    return 0;
}
#4
坏胖子猩猩2009-10-20 07:32
能告诉我下public的第一个语句什么意思吗
#5
于奎星2009-10-20 12:18
回复 4楼 坏胖子猩猩
定义构造函数,同时可以对对象进行初始化
#6
坏胖子猩猩2009-10-20 12:28
那为什么是A()这么样的?
还有请帮忙回答下数组指针 指针数组那个呗。。。
#7
于奎星2009-10-20 12:53
回复 楼主 坏胖子猩猩
数组x[i][j] p是指向二维数组首元素的指针  p是二维指针
*(p[0]+3*i+j)  p[0]指向数组X的第一个元素,即x[0][0]所在的储存单元,(p[0]+3*i+j)是指指针向后移动(3*i+j)个储存单元就指向了x[i][j]所在的储存单元
和*(p[i]+j)p[i]指向第i行第一个元素,再加j表示指针后移j个单元;
和*(*(p+i)+j)p是指向数组第一个元素的指针,加上i,j同上
怎么表示的x[i][j]??

指针数组的问题:

int x[2][3]={{1,2,3},{4,5,6}};定义并初始化一个二维数组
int *px[2]={x[0],[1]};定义一个里面元素均是指针的指针数组,其元素分别指向数组x第一行和第二行的第一个元素
什么意思? 有什么作用?

数组指针

赋值同上

int  (*px)[3]=x;定义一个行指针每行有三个元素并初始化使之指向数组x的第一个元素

这个又是什么意思? 有什么作用?
#8
于奎星2009-10-20 12:55
回复 6楼 坏胖子猩猩
构造函数必须以本类名为函数名,无任何反值类型
1