1、二维数组举例
#include <iostream>
using namespace std;
int main(){
int array[3][3]={{11,12,13},{21,22,23},{31,32,33}};
for(int I=0;i<3;i++}{
for(int j=0;j<3;j++)
cout<<*(*(array2+i)+j)<<"";
cout<<endl;
}
return 0;
}
2、指向常量的指针做形参
#include <iostream>
using namespace std;
const int N=6;
void print (const int *p,int n);
int main(){
int array[N];
for(int I=0;i<N;i++)
cin>>array[i];
print(array,N);
return 0;
}
void print(const int*p,int n){
cout<<"{"<<*p;
for(int I=1;i<n;i++)
cout<<","<<*(p+i);
cout<<"}"<<endl;
}
3、
#include <iostream>
using namespace std;
int main(){
int array[10];
int *search(int *a,int num);
for(int i=0;i<10;i++)
cin>>array[i];
int *zeroptr=search(array,10); //将主函数中数组的首地址传给子函数
return 0;
}
int* search(int *a,int num){ //指针a指向主函数中定义的数组
for(int i=0;i<num;i++)
if(a[i]==0)
return &a[I]; //返回的地址指向的元素是在主函数中定义的
}//函数运行结束时,a[i]的地址仍然有效
4、通过指针访问类的静态数据成员
#include<iostream>
using namespace std;
class Point{
public:
Point(int x=0,y=0):x(x),y(y){
count++;
}
Point (const Point &p):x(p.x),y(p.y){
count++:
}
~Point(){count--;}
int getX() const {return x;}
int getY() const {return y;}
static int count;
private:
int x,y;
};
int Point::count=0;
int main(){
//定义一个int类型指针,指向类的静态成员
int *ptr=&Point::count;
Point a(4,5);
cout<<"Point A:"<<a.getX()<<","<<a.getY();
cout<<"Object count="<<*ptr<<endl;
Point b(a);
cout<<"Point B:"<<b.getX()<<","<<b.getY();
cout<<"Object count="<<*ptr<<endl;
return 0;
}
5、动态数组类
#include <iostream>
#include <cassert>
using namespace std;
class Point{ ...};
class ArrayOfPoints{ //动态数组类
public:
ArrayOfPoints(int size):size(size){
points=new Point[size];
}
~ArrayOfPoints(){
cout<<"Deleting..."<<endl;
delete[] points;
}
Point &element(int index){
assert(index>=0&&index<size); //断言函数
return points[index];
}
private:
Point *points; //指向动态数组首地址
int size; //数组大小
};
int main(){
int cout;
cout<<"Please enter the count of points:";
cin>>count;
ArrayOfPoints points(count); //创建对象数组
//通过访问数组元素的成员
points.element(0).move(5,0);
//通过类访问数组元素的成员
points.element(1).move(15,20);
return 0;
}
6、计算arr中元素的平均值
#include <iostream>
#include <vector>
using namespace std;
double average(const vector<double> &arr){
double sum=0;
for (unsigned I=0;i<arr.size():i++)
sum+=arr[i];
return sum/arr.size();
}
int main(){
unsigned n;
cout<<"n=";
cin>>n;
vector<double> arr(n);
cout<<"Please input"<<n<<"real numbers:"<<endl;
for(unsigned I=0;i<n;i++)
cin>>arr[i];
cout<<"Average ="<<average(arr)<<endl;
return 0;
}
7、用getline 输入字符串
#include <iostream>
#include <string>
using namespace std;
int main(){
for(int I=0;i<2;i++){
string city-state;
getline(xin,city,',');
getline(cin,stata);
cout<<"City:"<<city<<" State:"<<state<<endl;
}
return 0;
}