c语言 指针与函数变量,c语言函数指针定义,指针函数和变量指针的区别

5-810-jpg_6-1080-0-0-1080.jpg

f=func; /* 将func函数的首地址赋给指针f */

赋值时变量func不带空格,也不带参数,由于func代表变量的首地址,因此经过赋值之后,指针f就指向数组func(x)的代码的首地址。

指针函数和变量指针的区别:

1、指针函数是指带指针的变量,即本质是一个函数。函数返回类别是某一类型的指针

类型标识符 *函数名(参数表)

int *f(x,y);

空语句和复合语句27413.3.2控制语句27513.3.3跳转语句27613.3.4关于分号的说明276习题13276第14单元数组28014.1函数参数28014.1.1现代c语言函数参数不能空28014.1.2c语言函数调用中的值结合28014.1.3指针类型参数28214.2函数定义与变量声明28914.2.1函数定义28914.2.2函数声明29014.3内联函数29114.3.1内联函数的概念29114.3.2c99的内联函数定义29114.3.3gcc的内联函数定义29214.3.4内联函数的限制292习题14292第15单元输入/输出29715.1格式化输出变量printf29715.1.1printf格式参数结构29715.1.2printf基本格式符29715.1.3长度修饰符29815.1.4域宽与精度说明29915.1.5前缀修饰符29915.2格式化输入方程scanf30115.2.1scanf指针参数30115.2.2scanf格式参数结构30215.2.3数值数据的输入控制30415.2.4scanf与键入缓冲区30515.2.5字符型数据的输入控制30615.2.6scanf的中止与返回30915.3c语言的文件操作31015.3.1文件以及分类31015.3.2file类型及其指针31215.3.3c语言文件操作的通常过程31315.3.4文件操作程序实例316习题15318附录324附录ac语言关键字324附录bc语言运算符的优先级和结合方向324附录c编译预处理命令325c.1宏定义325c.2文件包括326c.3条件编译326附录dc标准库头文件326附录ec语言常用标准库函数327e.1数学方程327e.2字符数组和字符串函数328e.3输入/输出变量329e.4动态内存分配函数331e.5退出程序变量331e.6数值转换函数331e.7时间和日期函数332参考文献333空指针与void指针128习题6.11296.2数组的指针形式1316.2.1数组名与指向数组元素的指针1316.2.2指向数组元素指针的加减运算1336.2.2指针与字符串1356.2.3二维数组与指针137习题6.21396.3指向结构体变量的指针与递归1426.3.1指向结构体类型变量的指针1426.3.2链表以及特性1426.3.3构建链表144习题6.31466.4动态内存分配1466.4.1申请必须的储存空间1476.4.2释放一个指针指向的储存空间1496.4.3修改一个指针指向的储存空间大小1496.4.4构建动态字段150习题6.4154第3篇构 建 算 法第7单元基础算法1567.1穷举1567.1.1搬砖问题1567.1.2推断名次159习题7.11637.2迭代与递推1687.2.1用二分迭代法求函数在指定区间的根1687.2.2猴子吃桃子1717.2.3用辗转相除法求两个正整数的最大公因子173习题7.21767.3递归1807.3.1阶乘的递归计算1807.3.2汉诺塔182习题7.3185第8单元计算机模拟1878.1随机问题模拟1878.1.1产品随机抽样1878.1.2用蒙特卡洛法求π的近似值190习题8.11928.2基于步长的模拟1928.2.1事件步长法——中子扩散问题1928.2.2时间步长法——盐水池问题194习题8.2198第9单元数据处理2019.1排序2019.1.1直接选取排序2019.1.2冒泡排序203习题9.12069.2查找2069.2.1穷举查找2069.2.2二分查找207习题9.2208第4篇语 海 探 幽第10单元算术数据类别以及转化21010.1c数据种类概述21010.2整数类型21110.2.1有符号实数类型与无符号整数类型21110.2.2标准整数类型与扩展整数类型21110.2.3整数类型的极值宏21210.2.4char类型21310.2.5枚举21410.2.6_bool类型21610.3浮点类型21610.3.1浮点类型的值特性21610.3.2浮点数据的舍入模式21710.3.3浮点数据的求值特性21710.3.4ieee 754标准21810.3.5关于浮点数的判等操作21810.3.6_complex类型和_imaginary类型21810.4数据类别转换21910.4.1普通算术转换——提升拉齐规则21910.4.2传送转换——与目的种类一致原则22110.4.3数据的显式类型转化规则22210.4.4数据类别转换注意事项222习题10226第11单元c语言中的常量22911.1字面量22911.1.1整数字面量的表示跟辨识22911.1.2浮点类型字面量的表示跟辨识23011.1.3复合字面量23111.2宏23211.2.1宏定义23211.2.2使用宏必须留意的几点23311.2.3带参宏定义23411.3const类型限定符23711.3.1用const限定函数23711.3.2用const限定变量23811.3.3用const限定函数参数23911.3.4用const限定指针23911.3.5在多文件程序中共享一个const定义240习题11241第12单元c程序中函数的访问属性24712.1变量访问属性的概念24712.1.1变量的传输类别与生存期24712.1.2标识符的作用域24812.1.3标识符的链接属性24912.2c语言程序实体的储存类型24912.2.1c程序中的局部变量25012.2.2外部变量的定义与声明25112.2.3初始化255习题12256第13单元操作符减值操作符663.5重复结构的程序检测673.5.1基于模式覆盖的重复结构检测673.5.2边值分析法与重复结构检测673.5.3基于因果预测的程序检测683.6在重复体内控制重复过程713.6.1跳出当前层控制结构语句break723.6.2提前结束当前重复体句子continue723.6.3实例: 求素数72习题374第2篇组 织 数 据第4单元同类型数据的聚合类型: 数组864.1一维数组864.1.1数组的特征864.1.2数组的定义874.1.3数组初始化874.1.4访问下标变量894.2二维数组904.2.1二维数组的概念904.2.2二维数组的初始化914.2.3访问二维数组元素924.3字符串934.3.1字符串字面量934.3.2字符串变量944.3.3字符串的键入/输出954.3.4字符串操作库函数98习题4102第5单元描述一类对象属性的聚合类型: 结构体和共用体1075.1结构体类型与结构体变量1075.1.1结构体类型及其定制1075.1.2结构体变量的声明与初始化1085.1.3结构体变量以及分量的应用1095.2用结构体数组内存一组1115.2.1结构体数组的定义与初始化1115.2.2结构体数组元素的访问1125.3共用体类型1145.3.1共用体类型的定制与共用体变量的定义1145.3.2共用体类型与结构体类型的比较1155.3.3共用体变量的应用117习题5118第6单元指针1246.1指针类型与指针数组1246.1.1指针=基类型+地址1246.1.2同类型指针间的赋值与判等操作1266.1.3指针的递引用1276.1.4悬空指针

表示:

float *fun();

v2-45e4ae79aa5b9ee68e2cb960b77518d7_b.jpg

float *p;

p = fun(a);

注意指针函数与变量指针表示方式的不同,千万不要混淆。最简单的分辨方法就是看变量名后面的指针*号有没有被括号()包含c语言 函数指针,如果被包括就是函数指针,反之则是指针函数。

来讲具体一些吧!请看上面

指针函数:

当一个函数声明其返回值为一个指针时,实际上就是返回一个地址帮调用函数,以用于必须指针或地址的表达式中。

格式:

类型说明符 * 函数名(参数)

当然了,由于返回的是一个地址,所以类型说明符通常都是int。

78c2bd806bda54e1556f7c245c5ca700.png

例如:int *GetDate();

int * aaa(int,int);

函数返回的是一个地址值,经常使用在返回变量的某一元素地址下。

int * GetDate(int wk,int dy);

main()

{

int wk,dy;

do

{

206076_0.jpg

printf(Enter week(1-5)day(1-7)\n);

scanf(%d%d,&wkc语言 函数指针,&dy);

}

while(wk《1||wk》5||dy《1||dy》7);

printf(%d\n,*GetDate(wk,dy));

}

int * GetDate(int wk,int dy)

{

staTIc int calendar[5][7]=

8259d71ad96a4cb4848e4c8eaf87301a.png

{

{1,2,3,4,5,6,7},

{8,9,10,11,12,13,14},

{15,16,17,18,19,20,21},

{22,23,24,25,26,27,28},

{29,30,31,-1}

};

return &calendar[wk-1][dy-1];

}

程序需要是很好理解的,子函数返回的是函数某元素的地址。输出的是这个地址里的值。

2、函数指针是指向数组的指针变量,即本质是一个指针变量。

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/jisuanjixue/article-132207-1.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值