C语言指针与函数

函数的指针和指向函数的指针变量

函数在内存中有地址,通过定义指向函数的指针变量,并建立相应的指向关系后,运用指针访问函数。

函数指针变量的定义与使用

  • 函数源代码在内存中的第一条指令的存放地址,称为函数的入口地址。这个入口地址就称为该函数的指针。

  • 一维数组名代表一维数组第一个元素的内存地址,同理,函数名就是函数源代码在内存中的起始地址。

  • 指向函数的指针变量定义的一般形式为

                  数据类型(* 指向函数指针变量名)(形式参数表)
    

    类型为所指向函数的返回值类型,形参表给出函数指针变量所指向的函数的形参信息

    函数指针的赋值

                   指针变量=函数名;
    

    通过指针变量调用函数的一般形式:

                  (*指针变量名)(实参表)
    

    另外,函数指针变量可作函数的参数.

指针型函数

若函数的返回值是地址,则称此函数是指针型函数,即返回指针的函数。

指针型函数定义的一般形式:

  数据类型 *函数名(形参表)
  {
  		局部变量定义;
  		语句;
  }

int *p()与int ( * p)() 的区别?
int *p是返回值为指针的函数;int ( *p)()是指向函数的指针

C语言函数只允许返回全局变量指针、静态变量指针、堆内空间地址,不允许把函数内部定义的局部变量指针作为返回值。

指针数组和指向指针的指针

指针数组:由若干基类型相同的指针变量所构成的数组,即数组元素为指向同一类型数据的指针变量的集合。 指针数组落到数组上是数组。
指针数组定义的一般形式:数据类型 *数组名[数组长度]
运算符 "[ ]“比” * "的优先级高

在处理一些字符串问题时,由于交换地址比交换字符串中的字符所费的时间少,所以用指针数组更方便。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值