C语言定义一个自定义指针函数,使它交换一数组维A,B的值,同时可以交换C,D的值

来源:百度知道 编辑:UC知道 时间:2024/06/30 04:25:39
C语言定义一个自定义指针函数,使它交换一数组维A,B的值,同时可以交换C,D的值,100分啊。int A[]={}, int C[][]={}{} 这俩个随便填值..只要函数可以拷贝使B里有A的值.D里有C的值就行..前提是定义的自定义函数可以交换A,B同时也可以交换二维数组C,D

int add(int,int);
int sub(int,int);
typedef int (*)(int,int) A;
A AddOrSub(char oper)
{
if(oper == '+')
return add;
else
return sub;
}
根据符号返回调用的是加法还是减法

#include <stdio.h>
#include <memory.h>
#include <stdlib.h>
void swapArray(void *A,void *B,int n)
{
void *tmp=(void*)malloc(n);
memcpy(tmp,B,n);
memcpy(B,A,n);
memcpy(A,tmp,n);
free(tmp);
}
int main()
{
int A[]={1,2,3},B[]={4,5,6},C[][3]={{1,2,3},{4,5,6}},D[][3]={{7,8,9},{9,8,7}},i,j;

swapArray(A,B,sizeof(A));
swapArray(C,D,sizeof(C));
for(i=0;i<3;i++)
printf("%d ",A[i]);
printf("\nA数组交换后如上\n");
for(i=0;i<3;i++)
printf("%d ",B[i]);
printf("\nB数组交换后如上\n");
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
printf("%d ",C[i][j]);
p