`

指针函数和函数指针_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语言100例及教程.rar_C语言 100例_C语言例_c语言 教程

    总的来说,"C语言100例及教程" 是一个全面的C语言学习资源,不仅提供基础理论知识,更强调实践操作,对于想要系统学习和提高C语言技能的人来说,是一份宝贵的资料。通过系统学习和反复实践,学习者可以逐渐掌握C语言...

    c语言指针学习笔记

    C语言中的指针是一种基础而...本文档为C语言指针的学习笔记,从基础到深入逐步介绍了指针的概念、定义、初始化、运算和使用。通过本文档的阅读,学习者应能更好地掌握C语言中的指针知识,并在实际编程中正确使用指针。

    C语言指针学习笔记

    ### C语言指针学习笔记知识点解析 #### 一、C语言中的数据类型 在学习C语言的过程中,了解数据类型是非常重要的第一步。数据类型不仅决定了变量所占用的内存大小,还决定了变量的操作方式。 ##### 1. 基本数据...

    1584007113891_C语言_SuddenlyYou_

    9. **函数指针**:函数指针可以作为参数传递,也可以赋值给其他变量,实现回调函数和模式设计。 10. **递归**:在适当的情况下,使用递归函数可以简化问题的解决,但需要注意调用深度以避免栈溢出。 学习C语言不仅...

    C语言和C++Builder学习笔记.rar_C++笔记_c++学习笔记_c/C++_学习笔记_编程语言

    【C语言和C++Builder学习笔记】 C语言和C++是两种广泛使用的编程语言,它们在软件开发领域占据着重要地位。C语言以其简洁、高效和底层操作能力著称,而C++则在C的基础上引入了面向对象编程,极大地扩展了其应用范围...

    C语言学习笔记_指针

    ### C语言学习笔记_指针 #### 指针的重要性及基本概念 在C语言中,指针是一种非常重要的数据类型,它不仅丰富了C语言的功能,还是衡量开发者是否熟练掌握C语言的关键指标之一。指针能够让程序员像操作低级语言(如...

    C语言学习笔记 C语言学习笔记

    本压缩包包含的“C语言学习笔记”是一份详尽的C语言学习资料,旨在帮助读者深入理解和掌握C语言的基本概念、语法结构以及实际应用技巧。 一、C语言基础 C语言的基础包括变量、数据类型、运算符、流程控制等。变量...

    LAN.rar_C语言

    - 指针:C语言的强项之一,用于高效地处理内存和数据结构,游戏中的动态内存分配、数组、链表等都离不开指针。 - 文件操作:可能需要读写配置文件、保存游戏进度等,C语言提供了标准库函数来进行文件操作。 - 图形库...

    c语言学习笔记劫持函数劫持函数.docx

    "C语言学习笔记劫持函数" C语言学习笔记劫持函数是关于使用C语言实现函数劫持的笔记。函数劫持是指在程序运行时,动态地替换或修改函数的行为,以达到特定的目的。在这个笔记中,我们将使用Detours库来实现函数劫持...

    超强的C语言指针学习笔记.pdf

    ### 超强的C语言指针学习笔记 #### 知识点概览 本文将深入探讨C语言中的指针概念及其复杂声明的理解方法——右左法则。文章将分为以下几个部分进行详细介绍: 1. **指针基础知识回顾** 2. **右左法则详解** 3. **...

    C语言学习笔记基础完整

    指针运算和指针作为函数参数是C语言高级特性。 七、结构体与联合 结构体用于组合不同类型的数据,形成复合数据类型。联合允许在相同的内存空间内存储不同类型的值,根据访问类型切换。 八、内存管理 C语言提供了...

    C语言学习笔记.pdf

    ### C语言学习笔记知识点梳理 #### 一、C语言中的函数 C语言中的函数是程序设计的基本单位之一,主要用于组织代码、实现特定功能并能够被重复调用。 1. **函数分类** - **库函数**:由系统提供的标准函数,如`...

    C语言学习笔记.zip

    本压缩包“C语言学习笔记.zip”包含了丰富的C语言学习资料,主要集中在“c-notes-master”这个子目录下,适合初学者和有一定基础的程序员进行深入学习。 在C语言的学习中,首先要掌握的基本概念包括变量、数据类型...

    c语言学习笔记,好东西

    本压缩包包含了一份精心整理的C语言学习笔记,旨在帮助读者深入理解和掌握C语言的核心概念与技术。 笔记首先从基础语法开始,包括变量、数据类型、运算符以及表达式。C语言中的数据类型有基本类型如int、char、...

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

    ### C语言指针、函数指针学习笔记 #### 指针与字符串 在C语言中,指针是一个非常重要的概念。它是一个变量,其值为另一个变量的地址,即,内存位置的直接地址。使用指针可以访问和操作字符串。 **示例代码**: ``...

    精通UNIX下C语言编程与项目实践+源代码+笔记.zip_C语言项目linux_Linux/Unix编程_Linux下的c语言开

    学习在UNIX环境下编写C程序,意味着要掌握C语言的基本语法、数据类型、控制结构、函数、指针等核心概念。此外,还要熟悉UNIX的系统调用接口,如打开、读取、写入文件,以及进程、线程管理等。 在UNIX系统中,C语言...

    coursera 上 的硬件/软件接口_C语言_代码_相关文件_下载

    4. **文档**:可能包含教程、笔记或者API参考,帮助学习者理解和使用所提供的库函数。 理解硬件/软件接口的关键在于熟悉底层硬件的工作原理,如寄存器操作、中断服务程序和DMA(直接存储器访问)等。C语言的灵活性...

    C++(1_35).rar_C语言 视频

    通常,这样的教程会逐步引导初学者了解基本语法、变量、数据类型、运算符、流程控制语句(如if条件语句、for和while循环)、函数、数组、指针等概念。 【C语言与C++的关系】 C++是从C语言中派生出来的,它们之间的...

    C语言学习笔记C语言学习笔记C语言学习笔记

    "C语言学习笔记" 本笔记总结了C语言的基础知识点,包括数据类型、输入输出函数、格式输出函数等。 一、数据类型 C语言的数据类型可以分为四类:基本类型、构造类型、指针类型和空类型。基本类型又可以分为整型、...

Global site tag (gtag.js) - Google Analytics