这是书本的一个习题,代码如下;
#include<iostream>
#include<stdlib.h>
#include<stdio.h>
///#include"nicai.h"
#include<math.h>
#include<string>
#include<algorithm>
//#include<cmath>
using namespace std;
class nihao
{
private:
public:
nihao();
char xunzhao;
void bianli();
(int *) data[4];//创建存放指针的指针数组
int *a;//创建四个动态数组
int *b;
int *c;
int *d;
void paixu();
};
/*void nihao::bianli()
{
cout<<"请输入要寻找的学号";
cin>>xunzhao;
for(int i=0;i<3;i++)
{
for(int
}
};*/
void nihao::paixu()
{cout<<"输入第一位同学的学号";
cin>>*(data[0]+1);
cout<<*(a+1);//这里a只是一个地址,*a就是a地址的内容,
cout<<"输入第二位同学的学号";
cin>>*(data[0]+2);
cout<<"输入第三位同学的学号";
cin>>*(data[1]+2);
cout<<*(data[0]+1);
cout<<*(data[0]+2);
cout<<*(data[1]+2);
}
nihao::nihao()
{ a=new int[5];
b=new int[6];
c=new int [4];
d=new int[3];
data[0]=a;//a是一个指针,也就是一个地址,data是指针数组,本身就是用来存放指针的也就是存放地址。
data[1]=b;
data[2]=c;
data[3]=d;
};
void main()
{
nihao nicai;
//cin>>*(nicai.data[0]);
//cin>>*(nicai.data[1]);
nicai.paixu ();
}
我本来有个疑惑,参考本书的p356的指针运算一章,data[0]+1和data[1]照理说是一样的,可是我忽略了一点。
data[0]=a;
data[1]=b;
data[2]=c;
data[3]=d;
我把abcd的地址分别赋给了data[0].data[1]...就是说data[1]的地址是b的地址与a完全不同。