例6.1通过指针访问整型变量
#include<iostream>
#include<string>
using namespace std;
int main()
{
int a, b ;
int*pointer_1, *pointer_2;
a = 100; b = 10;
pointer_1 = &a;
pointer_2 = &b;
cout << a << " "<< b << endl;
cout << *pointer_1 << " " << *pointer_2 << endl;
return 0;
}
执行效果如图:
例6.2按先小到大的顺序输出a,b的值:
#include<iostream>
#include<string>
using namespace std;
int main()
{
int *p1, *p2, *p, a, b;
cin >> a >> b;
p1 = &a;
p2 = &b;
if (a > b)
{
p = p1; p1 = p2; p2 = p;
}
cout << "a=" << a << "b=" << b << endl;
cout << "min=" << *p1 << "max=" << *p2 << endl;
return 0;
}
执行效果如图:
例6…3用指针作函数参数:
#include<iostream>
#include<string>
using namespace std;
int main()
{
void swap(int *p1, int *p2);
int *pointer_1, *pointer_2, a, b;
cin >> a >> b;
pointer_1 = &a;
pointer_2 = &b;
if (a < b)swap(pointer_1, pointer_2);
cout << "max=" << a << "min=" << b << endl;
return 0;
}
void swap(int *p1, int *p2)
{
int temp;
temp = *p1; *p1 = *p2; *p2 = temp;
}
执行效果如图:
例6.4:使用指针变量作函数参数,通过指针变量改变主调函数中变量的值,相当于通过函数调用从被调用的函数中得到多个值,
#include<iostream>
#include<string>
using namespace std;
int main()
{
void exchange(int*, int*, int*);
int a, b, c, *p1,*p2,*p3;
cin >> a >> b >> c;
p1 = &a; p2 = &b; p3 = &c;
exchange(p1, p2, p3);
cout << a << " " << b << " " << c << endl;
}
void exchange(int*q1, int*q2, int*q3)
{
void swap(int *, int *);
if (*q1 < *q2)swap(q1, q2);
if (*q1 < *q3)swap(q1, q3);
if (*q2 < *q3)swap(q2, q3);
}
void swap(int *p1, int *p2)
{
int temp;
temp = *p1; *p1 = *p2; *p2 = temp;
}
执行效果如图: