#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef int (*funptr)(int);
typedef int (*operation)(int,int);
typedef int (*fptrOperation)(int,int);
operation operations[128]={NULL};
int add(int num1,int num2)
{
return num1+num2;
}
int substract(int num1,int num2)
{
return num1-num2;
}
void initializeOperationsArray()
{
operations['+'] = add;
operations['-'] = substract;
}
int evaluateArray(char opcode,int num1, int num2)
{
operation operation;
operation = operations[opcode];
return operation(num1,num2);
}
int sequare(int num)
{
return num*num;
}
int main()
{
int n=5;
int result=0;
char a='a';
funptr fptr;
int* arr[5]={NULL};
fptr = sequare;
result = fptr(n);
printf("%d\r\n",a);
printf("%d\r\n", result);
initializeOperationsArray();
printf("%d\r\n",evaluateArray('+',5,6));
printf("%d\r\n",evaluateArray('-',5,6));
for(int i=0;i<5 ;i++)
{
arr[i]= (int*)malloc(sizeof(int));
*arr[i]=i;
}
for(int i=0;i<5;i++)
{
printf("%d : %d\r\n",arr[i],*arr[i]);
free(arr[i]);
}
for(int i=0;i<5;i++)
{
*(arr+i) = (int*)malloc(sizeof(int));
**(arr+i) = i;
}
for(int i=0;i<5;i++)
{
printf("%d : %d : %d \r\n",(arr+i),*(arr+i),**(arr+i));
free(*(arr+i));
}
return 0;
}
c 指针数组&函数
猜你喜欢
转载自my.oschina.net/u/1579560/blog/1817021
今日推荐
周排行