指向函数的指针

2016-8-25 admin MOOC-C语言

#include "stdio.h"
#define N 10
int sum(int a,int b){
 return a+b;
}
int sub(int a,int b){
 return a-b;
}
int mul(int a,int b){
 return a*b;
}
int div(int a,int b){
 return a/b;
}
int Error()
{
 printf("input error...\n");
 return 0;
}
void main()
{
 int a,b;
 int (*f)();
 char op;
 printf("input a string(Example:2+3 (+ can be replaced by - or * or /)\n");
 scanf("%d%c%d",&a,&op,&b);
 switch(op)
 {
  case '+':f=sum;break;
  case '-':f=sub;break;
  case '*':f=mul;break;
  case '/':f=div;break;
  default:f=Error;break;
 }
 if(f!=Error)
 {
  printf("%d%c%d=%d\n",a,op,b,(f)(a,b));
 }
 else
  (f)();

}

标签: 指针 函数

评论(0) 浏览(520)

指针作为函数参数

2016-8-25 admin MOOC-C语言

#include "stdio.h"
#define N 10
int max_array(int p[],int n)
{
 int i;
 int max_value=p[0];
 for(i=1;i<n;i++)
  if(p[i]>max_value)max_value=p[i];
 return max_value;

}
int max_pointer(int *p,int n)
{
 int i;
 int max_value=*p;
 for(i=0;i<n;i++,p++)
  if(*p>max_value)max_value=*p;
 return max_value;

}
void main()
{
 int a[N]={12,23,44,6,9,56,334,34,334,11};
 int max_array_value=max_array(a,N);
 int max_array_pointer=max_pointer(a,N);
 printf("max_array_value=%d,max_array_pointer=%d\n",max_array_value,max_array_pointer);

}

标签: 指针 函数参数

评论(0) 浏览(440)


好优扒博客 皖ICP备14016797号-2