指针及其应用

来源:百度知道 编辑:UC知道 时间:2024/06/08 03:26:00
一、实验目的
1.掌握指针和指针变量,内存单元和地址、变量与地址、数组与地址的关系。
2.掌握指针变量的定义和初始化,指针变量的引用方式。
3.掌握取地址运算符与指针运算符。
4.掌握指向变量的指针变量的使用。
5.掌握指向数组的指针变量的简单使用。

二.实验要求
1.仔细阅读下列实验内容,并编写出相应的C语言源程序。
2.在VC运行环境下,编辑录入源程序。
3.调试运行源程序,并记录下调试运行过程中出现的所有错误及改正方法。
4.掌握如何根据出错信息查找语法错误。
5.掌握如何通过动态跟踪程序运行过程查找逻辑错误。
6.写出本次实验的实验报告。

三、实验内容
1.用间接引用将三个数按升序排序并输出。
2.编写交换两个变量值的函数,并调用该函数交换主函数中两个变量的值(不能使用全局变量传递数据)。
3.编写求三个数中最大数的函数,并调用该函数求出主函数中三个数中的最大数(不能使用全局变量或return语句传递数据)。(选做)
只写程序

#include <stdio.h>

void exchange(int *a,int *b){
int tmp;
tmp = *a;
*a = *b;
*b = tmp;
}

void getMax(int a,int b, int c){
int max;
int *p1=&a;
int *p2=&b;
int *p3=&c;
if(*p1>*p2)
max =*p1;
else
max =*p2;
if(*p3>max)
max =*p3;
printf("max is %d\n\n",max);
}

int main(){
int a = 3;
int b = 5;
int c = 1;
int min;

printf("Original a,b,c:\n");
printf("a is %d\n",a);
printf("b is %d\n",b);
printf("c is %d\n\n",c);

exchange(&a,&b);

printf("exchange a,b :\n");
printf("a is %d\n",a);
printf("b is %d\n\n",b);

getMax(a,b,c);
}