zoukankan      html  css  js  c++  java
  • 对指针数组 数组指针 函数指针 函数指针数组 指向函数指针数组的指针的理解

    指针数组

    int a=10,b=20;
    int *arr[2]={&a,&b};//指针数组,数组 
    printf("%p  %p ",arr[0],&a);// 000000000062FE3C  000000000062FE3C 打印结果为两个一样的地址

    数组指针

    int (*parr)[2];
    parr=&arr; //数组指针,指针 
    printf("%p  %p ",&arr,parr+1);// 000000000062FE20  000000000062FE28 parr+1的地址加了8,指向下一个数组

    函数指针

    void funA(){
    printf("I am funA! ");
    }
    void funB(){
    printf("I am funB! ");
    }
    void (*pf)();//函数指针,指针
    pf=funA;
    pf();
    //调用funA()   I am funA!

    函数指针数组

    void (*pf2[2])()={funA,funB};//函数指针数组, 数组 
    pf2[0](); //调用funA()   I am funA!
    pf2[1](); //调用funB()  I am funB!

    指向函数指针数组的指针

    即是指针,保存函数指针数组的地址

    源码

    #include<stdio.h>
    
    void funA(){
    	printf("I am funA!
    ");
    }
    void funB(){
    	printf("I am funB!
    ");
    }
    
    int main(){
    	int a=10,b=20;
    	int *arr[2]={&a,&b};	//指针数组,数组 
    	int (*parr)[2];
    	parr=&arr;		//数组指针,指针 
    	printf("%p  %p
    
    ",arr[0],&a);
    	printf("%p  %p
    
    ",&arr,parr+1);
    	
    	void (*pf)();		//函数指针,指针
    	pf=funA;
    	pf();	
    	
    	void (*pf2[2])()={funA,funB};		//函数指针数组, 数组 
    	pf2[0]();
    	pf2[1]();
    	return 0;
    }






  • 相关阅读:
    链表_单链表(插入删除查询)
    OceanBase架构浅析(一)
    电商商品搜索现状
    ASP.NET MVC 源码分析(二) —— 从 IRouteBuilder认识路由构建
    ASP.NET MVC 源码分析(一)
    RPC框架分析
    RPC简介
    Performance Metrics(性能指标2)
    Performance Metrics(性能指标1)
    Introduction(本书简介)
  • 原文地址:https://www.cnblogs.com/yongtaochang/p/13615385.html
Copyright © 2011-2022 走看看