zoukankan      html  css  js  c++  java
  • 函数指针与指针函数

    函数指针和指针函数

    指针函数的本质是一个函数,只不过其返回值是一个指针类型的变量。如

    #include <stdio.h>
    #include <stdlib.h>
    
    int *max(int x,int y);//声明函数原型,返回值为int型指针
    
    int main(int argc, const char * argv[]) {
        printf("Hello, World!
    ");
        printf("max %d
    ", *max(1,2));
        return 0;
    }
    
    int *max(int x,int y){
        int *m = malloc(sizeof(int));
        *m = x>y?x:y;
        return m;
    }
    

    函数指针的本质是一个变量,该变量的内容指向一个函数。如

    #include <stdio.h>
    
    int max(int x,int y);//声明函数原型
    int (*f)(int x,int y);//定义一个函数指针类型的变量
    int main(int argc, const char * argv[]) {
        printf("Hello, World!
    ");
        printf("max %d
    ", max(1,2));
        f = max;
        printf("max %d
    ",f(1,2));
        return 0;
    }
    
    int max(int x,int y){
        return x>y?x:y;
    }
    

    其实可以把函数指针和指针函数与字符串指针和字符串变量相比较学习。函数指针中的函数名是一个常量,该常量指向函数在内存中的地址;指针函数则是一个变量,该变量的内容也是函数在内存中的地址,只不过变量可以重新赋值,而常量在程序载入内存中就已经确定,无法进行重新复制。

  • 相关阅读:
    ireport制作小技巧
    Spring 自动装配 Bean
    Toad创建DBLINKsop
    Spring 读书笔记-----使用Spring容器(一)
    Spring读书笔记-----Spring的Bean之Bean的基本概念
    关于iOS开发中info.plist文件的解读
    iOS常用的第三方库GitHub地址
    NSUserDefault的使用
    论坛收集
    iOS开发的一些奇巧淫技
  • 原文地址:https://www.cnblogs.com/WingPig/p/7898265.html
Copyright © 2011-2022 走看看