C语言:数组指针&函数指针&回调函数-创新互联

标题
    • 复杂指针类型
      • 数组
      • 函数
      • 回调函数
    • 判断复杂指针类型
      • 复杂指针分析
    • strlen&sizeof和数组名

创新互联自2013年起,公司以做网站、网站制作、系统开发、网络推广、文化传媒、企业宣传、平面广告设计等为主要业务,适用行业近百种。服务企业客户1000+,涉及国内多个省份客户。拥有多年网站建设开发经验。为企业提供专业的网站建设、创意设计、宣传推广等服务。 通过专业的设计、独特的风格,为不同客户提供各种风格的特色服务。复杂指针类型

*的结合优先级低于( )和 [ ]

arr先和[ ]结合,说明arr是数组
arr和*结合,说明a是一个指针

数组
int* arr[4]指针数组数组的元素类型int*
int** arr[5]指针数组数组的元素类型int**
int(*arr)[10]数组指针指向有10个元素,元素类型为int的数组

一维数组指针的使用

  • 在这里插入图片描述

二维数组指针的使用

  • 在这里插入图片描述
  • 数组指针用于二维数组传参
    二维数组的数组名也表示首元素的地址
    二维数组的首元素是:第一行

采用数组传参,列不能省略,列表示每一行有几个元素

函数

函数的地址就是函数名

int* fun(int )指针函数该函数参数是int,返回值是int
int (*fun)(int)函数指针指针指向,参数是int返回值是int的函数
int (*fun[5])(int *)函数指针数组数组fun有5个元素,类型为指针;指向参数为int*返回值值为int的函数

通过函数指针调用函数

  • 在这里插入图片描述
回调函数

通过函数A通过函数指针调用函数B
将函数B的地址作为参数传递给A函数,被调的函数就是回调函数
在这里插入图片描述

在这里插入图片描述

判断复杂指针类型

int (*fun[5])(int *)

  • fun先与[ ]结合,说明fun是一个有5个元素的数组
    再向右遇见了括号后向左
  • 每个元素类型是指针
    再次遇见括号,并跳出该括号后向右
  • 指针指向函数,该函数的有一个指针参数和一个整型返回值。

星号外的就是指向

复杂指针分析

调用地址为0的函数,但0不能当做一个地址,所以将0强转为void(*)()类型的函数

(* ( void(*)() ) 0 ) ( )

0是一个整数,先强转成函数的地址,(对函数的地址解引用就是函数)再解引用变成了函数,再加括号调用该函数

在这里插入图片描述

strlen&sizeof和数组名

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


分享题目:C语言:数组指针&函数指针&回调函数-创新互联
网页URL:http://ybzwz.com/article/gcpgh.html