//例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.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.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;
if(a<b)
{
temp=*p;*p=*q; *q=temp;
}
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 使用字符指针变量实现将字符串a赋值到字符串b中
#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=*p;
*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<<p[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[1],&a[2],&a[3],&a[4]};
for(int i = 0;i<5;i++)
cout<<*p[i]<<'\t';
cout<<endl;
return 0;
}
//6.13 用字符串初始化字符指针数组
#include <iostream>
using namespace std;
int main()
{
char *weekname[]={"sunday","monday","tuesday","wednesday","thursday","friday","saturday"};
int i;
while(1)
{
cout<<"please input week NO."<<endl;
cin>>i;
if(i<0||i>6)
break;
cout<<"week NO."<<i<<"-->"<<weekname[i]<<endl;
}
return 0;
}