zoukankan      html  css  js  c++  java
  • c语言之函数指针和指针函数的区别

    函数指针:是指向函数的指针变量,因而函数指针本身应该是指针变量,只不过指针变量指向函数。

    指针函数:带指针的函数,即本质是一个函数。

    函数指针实例:

    #include<stdio.h>
    #include<iostream>
    int max(int, int);
    int min(int, int);
    int add(int, int);
    int process(int a, int b, int(*func)(int a, int b));
    int main() {
        int a, b;
        printf("请输入a,b的值,以空格隔开:
    ");
        scanf_s("%d %d", &a, &b);
        printf("a=%d,b=%d,max=%d
    ", a, b, process(a,b,max));
        printf("a=%d,b=%d,min=%d
    ", a, b, process(a, b, min));
        printf("a=%d,b=%d,add=%d
    ", a, b, process(a, b, add));
        system("pause");
        return 0;
    }
    int max(int a, int b) {
        if (a >= b) {
            return a;
        }
        else
        {
            return b;
        }
    }
    int min(int a, int b) {
        if (a >= b) {
            return b;
        }
        else
        {
            return a;
        }
    }
    int add(int a, int b) {
        return a + b;
    }
    int process(int a, int b, int(*func)(int a,int b)) {
        return (*func)(a, b);
    }

    指针函数实例:

    #include<stdio.h>
    #include<iostream>
    #include<string.h>
    
    char* initMemory() {
        //开辟32个字节的内存,并用字符指针s指向该内存
        char* s = (char*)malloc(sizeof(char) * 32);
        return s;
    }
    
    int main() {
        //定义一个指针接收函数返回值
        char* ptr = initMemory();
        strcpy(ptr, "hello world");
        printf("%s
    ", ptr);
        //释放内存
        free(ptr);
        system("pause");
        return 0;
    }
  • 相关阅读:
    升级CentOS内核
    npm、component、spm、bower的区别
    Bower的使用
    Mac安装Bower
    Bower是什么?
    Mac下安装与配置Go语言开发环境
    jenkins升级为2.134
    nexus实现从windows迁移至Linux平台
    Jenkins构建完成后实现自动将war包部署到指定服务器
    使用jenkins构建一个maven项目
  • 原文地址:https://www.cnblogs.com/xiximayou/p/12126393.html
Copyright © 2011-2022 走看看