门宇 梁拓 李银琦
摘要:指针是C语言中广泛使用的一种数据类型, 函数是构成C语言程序的基本单位, 在C语言中, 将指针应用于函数进行程序设计, 使函数的功能更加强大, 函数调用也更加灵活, 程序更加精练和高效。就C语言一维指针、二维指针、与辨析指针数组与数组指针讨论。
关键词:C语言; 指针; 结构;分析;
随着现代技术的发展计算机行业越来越繁荣,而作为计算机标志性工具的编程语言也被广泛的应用和开发,其中C语言更是成为大学各个专业所常用做通识学习的一门语言。
C语言是结构化的程序设计语言, C语言相对于大部分的语言来说可以对硬件底层进行更深的操作,其中一部分就要归因于C语言的指针数据类型。
C语言的数据指针类型的使用灵活多变,可与其他数据结构联合使用,如数组、函数、结构体等。而正确而灵活地运用指针, 可以有效地表示复杂的数据结构, 方便地进行字符串处理, 灵活地实现数组的应用等一系列工作。所以C语言的指针是学习C语言的重要组成部分。
1 C语言常用的指针结构
(1)一维指针变量。
(2) 二维指针内存结构。
(3) 指针数组与数组指针。
2 一维指针变量
一维指针变量内容是该变量类型普通变量内容的地址。
例:int*P,a=1;
*P=a;
int类型指针变量P的内存结构与int普通变量a的关系
图中每个数据块的前半部分是数据存储的内存地址,后半部分是内存的内容。
从图中我们可以看到指针变量P中存储了普通变量a的地址内容。
用指针表示一个变量,不仅如此一维指针变量也可以表示一个一维数组。
例:int*P,a[5];
P=a;
图中指针P中的内容指向a中的数组第一个存储空间的地址。而当用指针对数组中数据查找时只需将“P+‘数组中要查找的数据所在的序号”,使用即可。
3 二维指针内存结构
二维指针是以线性方式表示一个数组块。即用二维指针代替二维数组。
例:int**P,a[4][5];
P=a;
如图中二维指针P指向*P,而*P中每一个内容都会指向一个一维数组。
在内存中二维数组就是以二维指针指向由一维指针组成的数组,而每一个一维指针都指向一个数组,这样就构成了一个二维数组。
4 指针数组与数组指针
指针数组即指针的数组,是一个一维数组但数组内容中存储的是指针变量的地址。
数组指针即数组的指针,它是一个指针是指向数组的一个指针。
例:
如图中数组P就是一个指针数组,数组内存放的是指针变量,而每个指针又指向数组,所以每个指针又称数组指针。
5 结语
在C语言中使用指针可以进行值传递,调用函数,结构体调用,使用指针也会提高程序的运行效率,由于指针只存储地址而不管其内容是什么,所以后容易赋值、对函数调用,因此C语言具有很好的灵活性。
参考文献:
[1]谭浩强.C语言程序设计 (第3版) [M].清华大学出版社,2014.
[2]Stephen Prata.c primer plus (第6版) 中文版 [M].人民邮电大学,2017.
[3] 涂玉芬.C语言指针在函数中的运用[J].電脑与信息技术,2019,27(01):69-71.