`

指针函数和函数指针_c语言学习笔记

 
阅读更多
指针函数

1. 概念:指返回指针值的函数。
int *getData ( int num )
{
	static int a[100];		// 定义为staitic类型
	int k;

	if ( num > 100 )	return (NULL);
	for ( k=0; k<num; k++ )
		scanf ("%d", &a[k]);
	return (a);
}

2. 其他函数调用指针函数获取指针后,要在适当的时候,调用 free() 函数释放内存。

3. 指针函数 不能返回 auto 类型局部变量的地址,但可以返回 static 类型变量的地址
    1)auto 型局部变量的生存期很短,返回的指针所对应的内存单元将被释放掉,返回指针也就无效,称为野指针。
    2)static 类型局部变量的生存期等同于全局变量的生存期,因此函数返回时,返回的指针所对应的内存单元不会被释放,返回指针是有效的。
    3)原则:返回的指针所对应的内存空间不能因该指针函数的返回而被释放掉。

4. 指针函数常见返回值情况
    1)函数中动态分配的内存的首地址。
    2)函数中的静态(static)变量或全部变量所对应的存储单元的首地址。
    3)通过指针参数所获得的实参的有效地址。


函数指针

1. 概念:函数名即是该函数的指针,代表该函数的入口地址。函数指针就是指向一个函数的指针变量。可以通过函数指针调用此函数。

2. 定义和赋值:
    函数类型  ( *指针变量 ) ( [ 形参类型1, 形参类型2 ... ] )

int max ( int a, int b )
{
	return ( a>b ? a : b );
}

int (*p)(int, int);		// 定义函数指针p
p = max;				// 将函数max()所对应的内存单元首地址(函数名max)赋给函数指针p
// 或 p = &max;

// 调用方式
p (2, 3);		//等价于 max(2, 3);
(*p) (2, 3);

分享到:
评论

相关推荐

    C语言指针、函数指针学习笔记.md

    通过学习可以全面掌握C语言中的指针知识,熟练使用指针与字符串、指针数组、动态内存分配和函数指针。 使用建议: 重点学习指针与动态内存分配,以及函数指针的使用。针对示例代码进行实践是一个好方法。本课件内容...

    C语言学习笔记.pdf

    C语言指针,数组,结构体链表,函数的总结

    C语言中的函数指针学习笔记

    主要介绍了C语言中的函数指针的一些学习知识点记录,文中作者整理了一些比较interesting的函数指针用法,需要的朋友可以参考下

    C语言学习笔记资源包,C语言初学者必备

    C语言学习笔记资源包是为C语言初学者精心准备的,它涵盖了C语言的核心知识点,从基础语法到进阶应用。 资源详细内容: 基础语法笔记:详细介绍了C语言的变量、数据类型、运算符、控制结构等基础概念,为学习者打下...

    函数指针学习笔记.docx

    函数指针学习笔记.docx

    新手小白学习C语言笔记推荐,适合零基础编程的小白也适合有一定的基础的同学,可以学习C语言的基本知识和复习

    我的C语言笔记从数组,操作符的使用,函数,指针和结构体进行详细的介绍,用相关的代码进行一些知识点的验证,里面也有相关的小型项目进行练习,包括:三子棋和扫雷,都可以帮助我们提高自己学习编程语言的兴趣和对...

    C语言高级笔记:深度学习与实践

    《C语言学习笔记》是一套专为C语言学习者打造的综合性学习资料,涵盖了从基础概念到高级应用的各种知识点。这套资料以深入浅出的方式,帮助学习者逐步掌握C语言的语法、数据类型、控制结构、函数和指针等核心内容。 ...

    史上最强的C语言资料

    37. 函数指针数组与返回数组指针的函数 186 38. 右左法则- 复杂指针解析 189 39. 回车和换行的区别 192 40. 堆和堆栈的区别 194 41. 堆和堆栈的区别 198 42. 如何写出专业的C头文件 202 43. 打造最快的Hash表 207 44...

    C语言学习笔记快速入门

    C语言自学笔记,快速入门,C语言组成,数据类型,运算符与表达式,分支结构,循环结构,数组,函数,指针等知识,且包含例题和答案解析。

    c语言学习笔记百度脑图版本

    1、自己整理的c语言知识思维导图。 2、百度脑图版本,只支持百度脑图打开,不需要下载软件,使用网页版即可。...数据类型、运算符号、指针、字符串、关键词、函数、伪指令、编译、内存这几个方面。 后续还会更新

    C语言整理笔记(数组、字符串、函数、指针)

    笔记中总结了学习C语言过程中需要掌握的基础知识,包括基本数据类型,数组,字符数组,指针等。对于常见的C语言问题,例如冒泡排序,简单选择排序,斐波那契数列,杨辉三角等都做了系统的梳理。针对函数,关于参数中...

    c语言难点分析整理,C语言

    37. 函数指针数组与返回数组指针的函数 186 38. 右左法则- 复杂指针解析 189 39. 回车和换行的区别 192 40. 堆和堆栈的区别 194 41. 堆和堆栈的区别 198 42. 如何写出专业的C头文件 202 43. 打造最快的Hash表 207 44...

    **p与 *&p的区别, 即指向指针的指针和引用指针变量的区别

    一份总结“指向指针的指针和引用指针变量区别”的精华笔记,很多人对于**p与 *&p的差别不是很清楚,相信这个笔记可以解决你的疑惑。

    C_Study_Notes:C语言学习笔记

    C语言学习笔记 【学习目标】 理解C程序设计语言结构,掌握数据表示和输入输出的基本方法,掌握流程控制、函数设计与调用方法; 理解模块化程序设计方法,掌握基本的C语言程序设计过程和技巧; 掌握初步的算法设计及...

    高级C语言详解

    37. 函数指针数组与返回数组指针的函数 186 38. 右左法则- 复杂指针解析 189 39. 回车和换行的区别 192 40. 堆和堆栈的区别 194 41. 堆和堆栈的区别 198 42. 如何写出专业的C头文件 202 43. 打造最快的Hash表 207 44...

    C语言难点分析整理

    37. 函数指针数组与返回数组指针的函数 186 38. 右左法则- 复杂指针解析 189 39. 回车和换行的区别 192 40. 堆和堆栈的区别 194 41. 堆和堆栈的区别 198 42. 如何写出专业的C头文件 202 43. 打造最快的Hash表 207 44...

    C基础C语言学习第8天学习笔记与作业代码

    函数,指针

    和大家一起分享c语言的学习笔记

    本文档总结c语言的多种容易出现错误的概念,有利用找工作的面试。

    C语言深度分析笔记

    很好的一个学习C语言的一个笔记 ,关键字、函数、指针、内存管理等都有很详细的记录。值得学习一下!

Global site tag (gtag.js) - Google Analytics