1、信 息 与 智 能 2023 NO.8 SCIENCE&TECHNOLOGY INFORMATION科技资讯SCIENCE&TECHNOLOGY INFORMATION科技资讯语言指针变量研究 史宇轩 1 徐洪丽 2*丁颐宁 3 (1.山东理工大学计算机科学与技术学院 山东淄博 255000;2.山东农业大学 信息科学与技术学院 山东泰安 271018;3.山东科技大学 测绘科学与空间信息学院 山东青岛 266590)摘要:指针在C语言程序设计中占有重要地位,指针变量的灵活性是C语言的主要特色之一。指针变量能够方便表示各种复合数据类型,可以使用数组和字符串,同时也可以处理内存地址。文章首先论述
2、了指针和地址的关系,以及指针的定义;其次,根据指针的实质化繁为简,总结了3种不同的指针赋值方式;再次,给出了常用的指针运算和注意事项;最后,辅助以举例和练习。指针变量的灵活性也带给程序一定的危险性,因此能否正确理解和使用指针是是否掌握语言的一个标志。关键词:地址和指针 指针变量 指针变量赋值 指针变量运算中图分类号:TP312.1文献标识码:A 文章编号:1672-3791(2023)08-0001-04Research of Pointer Variables in C LanguageSHI Yuxuan1 XU Hongli2*DING Yining3(1.School of Compu
3、ter Science and Technology,Shangdong University of Technology,Zibo,Shandong Province,255000 China;2.School of Information Science and Engineering,Shandong Agricultural University,Taian,Shandong Province,271018 China;3.College of Geodesy and Geomatics,Shandong University of Science and Technology,Qin
4、gdao,Shandong Province,266590 China)Abstract:The pointer occupies an important position in programming in C language,and the flexibility of pointer variables is one of the main features of C language.Pointer variables can easily represent a variety of composite data types,can use arrays and strings,
5、and can also handle memory addresses.This article firstly discusses the relation between pointers and addresses and the definition of the pointer,then simplifies the complex according to the essence of pointer and summarizes three different pointer assignment methods,gives commonly used pointer oper
6、ations and matters needing attention again,and finally gives auxiliary examples and exercises.The flexibility of pointer variables also brings some risks to the program,so whether you can understand and use pointers correctly is a sign of mastery of C language.Key Words:Address and pointer;Pointer v
7、ariable;Pointer variable assignment;Pointer variable operation指针变量在C语言程序设计中占有重要地位,已知在程序中定义了一个变量,在对该程序进行编译时,DOI:10.16661/ki.1672-3791.2204-5042-7013基金项目:泰安市科技局(项目编号:2019GX022)。作者简介:史宇轩(2002),男,本科在读,研究方向为机器学习、智能算法及应用。丁颐宁(2003),女,本科在读,研究方向为遥感智能算法及应用。通信作者:徐洪丽(1976),女,博士,副教授,研究方向为机器学习、大数据、混沌非线性系统等,E-mail
8、:。1 2023 NO.8科技资讯SCIENCE&TECHNOLOGY INFORMATION 信 息 与 智 能SCIENCE&TECHNOLOGY INFORMATION科技资讯首先要借助编译程序将其转换成目标代码,也就是*.OBJ文件,然后通过操作系统将目标代码装入特定的可标识的内存区域中。编译系统会根据程序中定义的变量类型,为该变量分配内存单元,该内存单元也就是该变量的地址,其内容为该变量的内容 1。因此,程序员可通过程序所定义的对象的名称来访问对象。假定程序员能够知道某程序对象在内存中的存储位置,即存放该对象的首地址,当然也可使用该地址访问对象。C语言能够满足以上的需求,提供解决上述
9、问题必要的技术手段,也就是指针变量。1 指针的定义1.1 地址和指针C语言中,指针实际上就是地址。在计算机中,数据都是存放在存储器中的。通常把存储器中的一个字节称为一个内存单元,为了正确地访问这些内存单元,必须为每个内存单元编号,该编号就是地址。根据该编号(如变量 int a=1;的地址&a)即可找到该变量的内容,在地址所表示的内存单元中实际存放的数据是该内存单元的内容,需特别注意的是,内存单元的地址与内存单元的内容是两个完全不同的概念。可以通过printf(“%d%d”,&a,a);实际做个测试,即:内存储器中的所有字节(byte)都拥有一个编号,该编号即“地址”,它类似于教学楼中的教室号;
10、数据存放在地址所表示的内存单元中,类似于教室中上课的学生;因为通过地址能找到所需的变量单元,通常说地址指向该变量单元。将地址形象化地称为“指针”,注意区分存储单元的地址和存储单元的内容。例如:VC+为整型变量分配4个字节,对单精度浮点型变量分配个字节,对字符型变量分配个字节。地址是一个直接存取的概念,必须通过地址才能找到存储变量值的存储单元,即“地址”指向了变量的存储单元,C语言形象地将地址称为“指针”。因此,一个变量的地址称为该变量的“指针”。图1为按变量地址存取变量的方式称为“直接访问”方式。int i=3,j=6,k;k=i+j;cout、=、p2”表示p1处于高地址位置;“p1p2”表
11、示p1处于低地址位置。但是“p1+p2”是没有真实意义的。3 举例和练习指针变量应用案例如图4所示。例题:输入两个整数,采用指针方式从小到大排序。#include void main()int i,j,k;int t;int*p=&i,*q=&j;*p=2;*q=1;if(*p*q)t=*p;*p=*q;*q=t;printf(*p=%d,*q=%dn,*p,*q);4 结语指针在C语言程序设计中占有重要的地位,与其他语言相比,指针变量的灵活性是C语言的主要特色之一。指针极大地丰富了语言的功能,但是凡事有两面性,指针变量的灵活性也带给程序一定的危险性,因此,能否正确理解和使用指针是能否掌握语言
12、的一个标志。参考文献1 王铖.一些库函数的实现D.长春:吉林大学2021.2 徐洪丽,语言程序设计M.北京:北京师范大学出版社,2019:199-200.3 李琨,贾立伟,石晓明.C程序设计语言中文件读取问题探析J.电脑编程技巧与维护,2022(2):23-25.4 尹慧,段华琼.基于C语言的图书管理系统的设计与实现J.信息与电脑(理论版),2021,33(23):116-118.5 PEREZ-SCHOFIELD B G,RIVERA M G,ORTIN F,et al.Learning memory management with CSim:A Cbased visual toolJ.Computer Applications in Engineering Education,2019(5):1217-1235.6 岳珊.C语言程序设计过程中指针概念的理解及使用J.信息与电脑(理论版),2020,32(15):111-113.图4 指针变量应用举例4