5-1 学习-指针基本概念
(一)通过指针变量间接访问变量
#include <stdio.h> int main(){ int x,y; int *p; //定义指针变量P p=&x; //使指针变量p指向一个变量x /*****请在以下填写通过p输入输出x值代码*****/ /********** Begin *********/ scanf("%d",p); printf("%d\n",*p); /********** End **********/ p=&y; //使指针变量p指向另一个变量y /*****请在以下填写通过p输入输出y值代码 /********** Begin **********/ scanf("%d",p); printf("%d\n",*p); return 0; }
(二)交换两个指针变量的值
#include <stdio.h> int main(){ int a=100,b=200; int *p1, *p2, *p; p1=&a; p2=&b; scanf("%d%d",p1,p2); /*****交换p1、p2的值*****/ /********** Begin *********/ p=p1; p1=p2; p2=p; /********** End **********/ printf("%d %d\n",*p1,*p2); return 0; }
(三)利用指针方法求数组的最大值和最小值
#include<stdio.h> #define M 3 main() { int a[M],i; int *max,*min; for(i=0 ;i<M; i++) { scanf("%d",&a[i]); } /***** 将指针变量max,min初始化 *****/ /********** Begin **********/ max = &a[0]; min = &a[0]; /********** End **********/ /***** 将每个数组元素依次与max,min指向的数组元素比较,使max,min分别指向的最大、最小的数组元素 *****/ /********** Begin **********/ for(i=0 ;i<M; i++){ if(a[i] > *max) max = &a[i]; if(a[i] < *min) min = &a[i]; } /********** End **********/ /***** 通过指针变量max,min输出最大值和最小值 *****/ /********** Begin **********/ printf("min=%d\n",*min); printf("max=%d\n",*max); /********** End **********/ return 0; }
5-2 学习-用指针遍历一维数组
#include <stdio.h> int main() { int a[10],*p,i,j=0; for(i=0;i<10;i++) { scanf("%d",&a[i]); } for(i=0;i<10;i++) { p=&a[i]; printf("%d ",*p); } getchar(); return 0; }
5-3 练习-用指针实现数组元素逆置
#include <stdio.h> #define N 10 int main() { /********** Begin **********/ int a[N],temp,i; int *p1=&a[0],*p2=&a[N-1]; for(i=0;i<N;i++){scanf("%d",&a[i]);} for(i=0;i<N/2;i++){temp=*p1;*p1=*p2;*p2=temp; p1++;p2--;} for(i=0;i<N;i++){printf("%d ",a[i]);} /********** End **********/ return 0; }标签:p2,p1,min,int,max,C语言,头歌,程序设计,指针 From: https://www.cnblogs.com/cyhms/p/18231320