指针高级应用
1 // 6_9.cpp : 定义控制台应用程序的入口点。 2 // 3 4 #include "stdafx.h" 5 #include<stdio.h> 6 #include<stdlib.h> 7 8 9 float *show(int a,float (*arr1)[4])//指针函数 10 { 11 /*float *pt=NULL; 12 pt=*(arr1+a);*/ 13 return *(arr1+a); 14 }; 15 int Max(int a,int b) 16 { 17 return a>b?a:b; 18 }; 19 int Min(int a,int b) 20 { 21 return a<b?a:b; 22 }; 23 int Func(int a,int b,int (*p)(int,int))//函数指针 24 { 25 return (*p)(a,b); 26 }; 27 int _tmain(int argc, _TCHAR* argv[]) 28 { 29 //指针数组 30 char *p[4]={"I","am","a","boy"}; 31 int i; 32 for(i=0;i<4;i++) 33 printf("%s ",p[i]); 34 puts("\n"); 35 //数组指针 36 char arr[4]={'L','O','V','E'}; 37 char (*p2)[4]=&arr; 38 for(i=0;i<4;++i) 39 printf("%c ",(*p2)[i]); 40 puts("\n"); 41 //指针函数 42 static float fScore[][4]={{11,22,33,44}, 43 {12,23,34,45},{77,88,99,99.5},{1.5,2.5,3.5,4.5}}; 44 int n; 45 float *pp; 46 scanf("%d",&n); 47 pp=show(n-1,fScore); 48 for(i=0;i<4;++i) 49 printf("%0.2f ",*(pp+i)); 50 //函数指针 51 puts("\n"); 52 printf("max=%d\n",Func(1,2,Max)); 53 printf("min=%d",Func(1,2,Min));//调用函数,函数名即为该地址 54 system("pause"); 55 return 0; 56 }