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;
    }






  • 相关阅读:
    Python 虚拟环境 virtualenv
    Python
    开发语言之---Java
    LINUX系统
    关系型数据库之MySQL
    开发语言之---Python
    框架之---Django
    递归/面向过程编程
    迭代器/生成器函数及协程函数的编写和使用
    装饰器的编写及使用
  • 原文地址:https://www.cnblogs.com/yongtaochang/p/13615385.html
Copyright © 2011-2022 走看看