栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言学习记录day14

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言学习记录day14

(*(void(*)())0)();//吧0强制类型转换成void(*)()函数指针类型-0就是一个函数的地址
                  //调用0地址处的该函数

void(*signal(int, void(*)(int)))(int);//signal是一个函数声明。参数有2个一个是int 另一个是函数指针(指向的函数的参数是int返回类型是void)
                                      //signal函数的返回类型也是一个函数指针 指向的函数的参数是int返回类型是void


char* my_strcpy(char* dest, const char* src);
//写一个函数指针pf,能够指向my_strcpy
char* (*pf)(char*, const char*);
//写一个函数指针数组 pfArr,能够存放4个my_strcpy函数的地址
char* (*pfArr[4])(char*, const char*);

void menu()
{
    printf("*********************************n");
    printf("**  1.add   *********   2.sub  **n");
    printf("**  3.mul   *********   4.div  **n");
    printf("*********     0.exit        *****n");
    printf("*********************************n");
}

int Add(int x, int y)
{
    return x + y;
}

int Sub(int x, int y)
{
    return x - y;
}

int Mul(int x, int y)
{
    return x * y;
}

int Div(int x, int y)
{
    return x / y;
}


int main()
{
    int input = 0;
    int x = 0;
    int y = 0;
    int(*pfArr[5])(int, int) = { 0,Add,Sub,Mul,Div };
    do
    {
        menu();
        printf("请选择:");
        scanf("%d", &input);
        if (input >= 1 && input <= 4)
        {
            printf("请输入两个操作数:");
            scanf("%d%d", &x, &y);
            int ret = pfArr[input](x, y);
            printf("%dn", ret);
        }
        else if (input == 0)
        {
            printf("退出n");
        }
        else
        {
            printf("选择错误n");
        }
        

        

    } while (input);
}

int main()
{
    int arr[10] = { 0 };
    int(*p)[10] = &arr;//取出数组的地址

    int(*pfArr[4])(int, int);//pfArr是一个数组-函数指针的数组
    int(*(*ppfArr)[4])(int, int) = &pfArr;//指向函数指针数组的指针
    //ppfArr是一个数组指针,指针只想的数组有4个元素
    //指向的数组的每个元素的类型实在一个函数指针 int(*)(int ,int )
}

int main()
{
    int a = 10;
    void* p = &a;
    *p = 0;
    //void* 类型的指针可以接受任意类型的地址
    //void* l类型的指针不能进行解引用操作
    //void*类型的指针不嫩进行+-整数的操作
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/529113.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号