实验7 指针及其运算
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验七指针及其运算
实验目的
理解指针的概念,会定义和使用指针变量,掌握指针的运算规则,学会使用数组的指针和指向数组的指针变量。
要点提示
1.变量在内存单元的地址称为该变量的“指针”。
2.指针变量是用来存放其它变量地址的变量。
3.指针变量定义的一般形式:
类型标识符*指针变量名;
4.指针运算符
&(取变量地址运算符)和*(取值运算符)是互逆的运算符,右结合。
++,--,+,- 运算符是按地址计算规则进行的。
5.用指针作为函数参数,可以实现“调用函数改变变量的值,在主调函数中使用这些改变的值。
6.数组的指针是指数组的起始地址(首地址),数组元素的指针是指数组元素的地址。数组名代表数组的首地址,是地址常量。
实验内容
1.指针变量的说明,初始化和使用。
2.指针作为函数参数。
3.数组的指针和指针数组的指针变量的说明和使用
4. 数组名作为函数参数
实验步骤
读懂并输入程序,完成填空后输出结果,(下面程序中的中文注释可以不输入)
1. 输入a和b两个整数,按先大后小的顺序输出。
算法提示:不交换变量的值,而是交换两个指针变量的值,使p1指向较大的数,p2指向较小的数。
#include
using namespace std;
main()
{
int *p1,*p2, 【】;/* 变量说明语句*/
int a, b;
cout<<"\n Please input a and b:";
cin>>a>>b;
p1=&a;
p2=&b;
if (a
{ p=p1; p1=p2; p2=p;} /* p1和p2变量的值进行交换*/
cout<<"max=”<<【】<<”min="<<【】< } 程序运行结果: Please input a and b: 12 34 【】 2.输入三个整数,按由小到大的顺序输出。用函数和指针实现。 #include using namespace std; main() {int a,b,c; int *p1,*p2,*p3; cout<<"\nInput 3 numbers:"; cin>>a>>b>>c; p1=&a; p2=&b; p3=&c; if (a>b) swap(【】); /* 函数调用*/ if (a>c) swap(【】); /* 函数调用*/ if (b>c) swap(【】); /* 函数调用*/ cout<<"\nThe sorted numbers:”< } swap(int *p1, int *p2) { int 【】; p=*p1; *p1=*p2; *p2=p; } 程序运行结果: Input 3 numbers: 100 200 150 The sorted numbers: 【】 问答:上面程序中语句printf("\nThe sorted numbers: %d,%d,%d\n",a,b,c); 是否可改为如下的语句:printf("\nThe sorted numbers: %d,%d,%d\n",*p1,*p2,*p3); _____, 请验证. 3.输出数组中的数据元素。 #include using namespace std; #define N 5 main() { int *p,i,a[N]; p=a; cout<<"\nInput 5 numbers:";