1、实验七 指针及其运算 实验目的 理解指针的概念,会定义和使用指针变量,掌握指针的运算规则,学会使用数组的指针和指向数组的指针变量。 要点提示 1. 变量在内存单元的地址称为该变量的“指针”。 2. 指针变量是用来存放其它变量地址的变量。 3. 指针变量定义的一般形式: 类型标识符 *指针变量名; 4. 指针运算符 &(取变量地址运算符)和*(取值运算符)是互逆的运算符,右结合。 ++,--,+,- 运算符是按地址计算规则进行的。 5. 用指针作为函数参数,可以实现“调用函数改变变量的值,在主调函数中使用这些改变的值。 6. 数组的指针是指数组的起始地址(首地
2、址),数组元素的指针是指数组元素的地址。 数组名代表数组的首地址,是地址常量。 实验内容 1. 指针变量的说明,初始化和使用。 2. 指针作为函数参数。 3. 数组的指针和指针数组的指针变量的说明和使用 4. 数组名作为函数参数 实验步骤 实验1 main() { int *p1,*p2, 【 】; /* 指针变量说明语句 */ int a, b; printf("\n Please input a and b:"); scanf("%d%d",&a,&b); p1=&a; p2=&b; if (a
3、 p2=p;} /* 将p1和p2变量的值进行交换 */ printf("max=%d,min=%d\n",【 】); } 程序运行结果: Please input a and b: 12 34 【 】 main() { int *p1,*p2,*p; /* 指针变量说明语句 */ int a,b; printf("\n Please input a and b:"); scanf("%d%d",&a,&b); p1=&a; p2=&b; if (a
4、} /* 将p1和p2变量的值进行交换 */ printf("max=%d,min=%d\n",*p1,*p2); } Please input a and b:12 34 max=34,min=12 Press any key to continue 实验2 main() { int a,b,c; int *p1,*p2,*p3; printf("\nInput 3 numbers:"); scanf("%d%d%d", &a,&b,&c); p1=&a; p2=&b; p3=&c; if (a>b) swap(【 】); /*
5、 函数调用 */ if (a>c) swap(【 】); /* 函数调用 */ if (b>c) swap(【 】); /* 函数调用 */ printf("\nThe sorted numbers: %d,%d,%d\n",a,b,c); } swap(int *p1, int *p2) { 【 】; p=*p1; *p1=*p2; *p2=p; } 程序运行结果: Input 3 numbers: 100 200 150 【The sorted numbers: 100 150 200 】 main()
6、{ int a,b,c; int *p1,*p2,*p3; printf("\nInput 3 numbers:"); scanf("%d%d%d", &a,&b,&c); p1=&a; p2=&b; p3=&c; if (a>b) swap(p1,p2); /* 函数调用 */ if (a>c) swap(p1,p3); /* 函数调用 */ if (b>c) swap(p2,p3); /* 函数调用 */ printf("\nThe sorted numbers: %d,%d,%d\n",a,b,c); }
7、 swap(int *p1, int *p2) { int p; p=*p1; *p1=*p2; *p2=p; } 实验3 #define N 5 main() { int *p,i,a[N]; p=a; printf("\nInput 5 numbers:"); for (; p






