例题6-1
#include<iostream>
using namespace std;
int main()
{
int a=10;
int *p;
p = &a;
cout<<"a="<<a<<endl;
cout<<"p="<<p<<endl;
cout<<"&a="<<&a<<endl;
cout<<"*p="<<*p<<endl;
cout<<"&p="<<&p<<endl;
cout<<endl;
*p=15;
cout<<"a="<<a<<endl;
cout<<"p="<<p<<endl;
cout<<"&a="<<&a<<endl;
cout<<"*p="<<*p<<endl;
cout<<"&p="<<&p<<endl;
return 0;
}
例题6-3
#include<iostream>
using namespace std;
int main()
{
int a,b,temp;
int *p=&a,*q=&b;
cout<<"please input a and b:";
cin>>a>>b;
cout<<"初始的两个数为:"<<a<<" "<<b<<endl;
if(a<b)
{
temp=*p; *p=*q; *q=temp;
}
cout<<"从大到小排序后的数为:"<<*p<<" "<<*q<<endl;
return 0;
}
例题6-2
#include<iostream>
using namespace std;
int main()
{
int a,b;
int *p=&a,*q=&b,*tp;
cout<<"请输入两个数:";
cin>>a>>b;
if(a<b)
{
tp=p;p=q;q=tp;
}
cout<<"初始的两个数为:"<<a<<" "<<b<<endl;
cout<<"从大到小排序后的数为:"<<*p<<" "<<*q<<endl;
return 0;
}
例题6-4
#include<iostream>
using namespace std;
int main()
{
int a=10,b=10,*ptr1,*ptr2;
ptr1=&a;
ptr2=&b;
cout<<boolalpha<<(*ptr1 == *ptr2)<<endl;
cout<<boolalpha<<(ptr1 == ptr2)<<endl;
return 0;
}
例题6-5
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int a[10];
for(int i=0;i<10;i++)
a[i]=2*(i+1);
for(i=0;i<10;i++)
cout<<setw(4)<<a[i];
cout<<endl;
return 0;
}
例题6-6
#include<iostream>
using namespace std;
int main()
{
char a[]="Hello world",b[20],*p,*q;
p=a,q=b;
for(;*p!='\0';p++,q++)
*q='\0';
cout<<"string1 is:";
cout<<a<<endl;
cout<<"string2 is:";
cout<<b<<endl;
return 0;
}
例题6-7
#include<iostream>
using namespace std;
int main()
{
char *p="student";
for(; *p!='\0';p++)
cout<<p<<endl;
return 0;
}
例题6-8
#include<iostream>
using namespace std;
int main()
{
char *p="student";
for(int i=0;p[i]!='\0';i++)
cout<<endl;
return 0;
}
例题6-9
#include<iostream>
using namespace std;
int main()
{
char s[50];
char *p;
cout<<"please input a string:";
cin.get(s,50);
p=s;
for(;*p!='\0';)
p++;
cout<<"the length is: "<<p-s<<endl;
return 0;
}
例题6-10
#include<iostream>
using namespace std;
int main()
{
int i=5,*p,**pp;
p=&i;
pp=&p;
cout<<&i<<'\t'<<i<<endl;
cout<<&p<<'\t'<<p<<'\t'<<*p<<endl;
cout<<&pp<<'\t'<<pp<<'\t'<<*pp<<'\t'<<**pp<<endl;
return 0;
}
例题6-11
#include<iostream>
using namespace std;
int main()
{
int a[5]={1,2,3,4,5};
int *p[5]={&a[0],&a[0],&a[2],&a[3],&a[4]};
for(int i=0;i<5;i++)
cout<<*p[i]<<'\t';
cout<<endl;
return 0;
}
例题6-12
#include<iostream>
using namespace std;
int main()
{
char a[]="computer system",b[]="hardware",c[]="sofrware";
char *p[4];
p[0]=a;
p[1]=b;
p[2]=c;
p[3]=NULL;
for(int i=0;p[1]!=NULL;i++)
cout<<p[i]<<endl;
return 0;
}
例题6-13
#include<iostream>
using namespace std;
int main()
{
char * weekname[] = {"Sunday","Monday","Tuesday","Wednesday","Thursday","Firday","Saturday"};
int i;
while(1)
{
cout<<"please input week No.:";
cin>>i;
if(i<0||i>6)
break;
cout<<"week No."<<i<<"-->"<<weekname[i]<<endl;
}
return 0;
}
例题6-14
#include<iostream>
using namespace std;
int main()
{
char *p[]={"Rebacca","Heaven","Michael Chang","Linda Tsai"};
char *temp;
int i,j,n=4;
for(i=0;i<n-1;i++)
for(j=0;j<n-1-i;j++)
if(strcmp(p[j],p[j+1])>0)
{
temp = p[j]=p[j+1];p[j+1]=temp;
}
for(i=0;i<n;i++)
cout<<p[i]<<endl;
return 0;
}
例题6-15
#include<iostream>
using namespace std;
int main()
{
int a[2][3],*p[2];
int i,j;
p[0]=a[0];
p[1]=a[1];
for(i=0;i<2;i++)
for(j=0;j<3;j++)
a[i][j]=j+i;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
{
cout<<"a["<<i<<"]:";
cout<<*(p[i]+j)<<endl;
}
return 0;
}
例题6-16
#include<iostream>
using namespace std;
int main()
{
int a[2][3],*p[2],**pp;
int i,j;
p[0]=&a[0][0];
p[1]=&a[1][0];
pp=p;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
pp[i][j]=j+i;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
{
cout<<"a["<<i<<"]["<<j<<"]:";
cout<<*(*(pp+i)+j)<<endl;
}
return 0;
}