C语言指针深度解析及自定义数据类型

需积分: 16 1 下载量 9 浏览量 更新于2024-09-14 收藏 161KB PDF 举报
"C语言指针学习笔记,涵盖了数据类型、指针、自定义数据类型、函数指针、指针函数和数组指针等核心概念,适合C语言初学者及进阶者阅读。" 在C语言中,指针是其强大特性的体现之一,它允许直接操作内存地址,为高效编程提供了可能。这篇学习笔记主要围绕以下几个知识点展开: 1. 数据类型:C语言中有多种基本数据类型,如int、char、float和double等,它们分别代表整型、字符型、浮点型和双精度浮点型。此外,还有结构体(struct)、共用体(union)和枚举(enum)等复合数据类型,以及数组和函数类型。 2. typedef关键字:用于创建新的数据类型别名,例如,可以用typedef定义一个新的无符号字符类型U8,使得U8ch等同于unsigned char。这有助于代码的可读性和一致性。同样,typedef也可用于自定义复杂类型,如函数指针、指针函数和数组指针。 3. 函数指针:函数指针是一个指向函数的指针,它本身是一个数据类型。例如,`int (*fun_pointer)(int, int)`定义了一个函数指针类型,该函数接受两个整数参数并返回一个整数。这里的`fun_pointer`就是一个变量,可以存储函数的地址。理解函数指针的关键在于,它是一个指针,而“函数”是对所指对象类型的描述。 4. 指针函数:与函数指针相反,指针函数是指返回值为指针的函数,如`int *pointer_fun(int, int)`。在这个例子中,`pointer_fun`是一个函数,返回一个int类型的指针。在这里,“指针”是函数的返回类型,而“函数”是描述了它的行为。 5. 数组指针:数组指针是指向数组的指针,例如`int (*arr_pointer)[10]`,它是一个指针,但它所指向的是一个包含10个整数的数组。`ARR_P`可以作为这个数组类型的新名称,而`arr_pointer`则是这个类型的一个变量。 学习这些知识点时,需要注意指针的声明、初始化和使用,以及指针与数组、函数之间的关系。指针在C语言中广泛应用于动态内存分配、数据结构实现(如链表、树等)、函数参数传递等方面。熟练掌握指针操作,是成为C语言高手的关键步骤。通过不断的练习和实践,才能更好地理解和运用这些概念。