例题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; }