浅谈C语言中指针变量的定义与应用
_pointer_是C语言中最具特色的内容,也是学习C语言的一个难点。正确而灵活地运用它,可以有效地表示复杂的数据类型,使程序简洁、紧凑、高效。
1. 指针变量的定义
在C语言中,指针变量是指向其他变量的变量。定义指针变量的方式如下:
类型标识符 变量名 ;(如:int p;)
在定义指针变量时,既要说明它是一个指针,同时也要说明该指针指向哪种类型的数据。
1.1 指针变量的定义
指针变量的定义有以下几种:
* int i, *p, ip, fO, fp(), (PO();
* int a[5], *ap[5], (*pa)[5], (fap[])();
1.2 指针运算
指针运算可以分为三种:
(1)算术运算
对指针变量的算术运算,只能进行整型数据的加、减运算。规则:指针变量p+n表示将指针指向的当前位置向前或向后移动n个存储单元。
(2)关系运算
关系运算用于标识目标变量在内存中的前后位置。
(3)赋值运算
赋值运算用于改变指针变量所指向的地址。
2. 指针的应用
2.1 简单指针变量(p)与指向指针的指针(ip)
int *p 定义了一个指向整型变量的指针变量,p只能指向整型变量。
2.2 指针数组
char *p 定义了一个指向字符数据的指针变量,p可以指向字符数组。
2.3 指针的应用实例
通过指针变量可以实现数组的输入和输出,例如:
int a[5], i, *p;
p = a;
for (i = 0; i < 5; i++) scanf("%d", p++);
p = a;
for (i = 0; i < 5; i++) printf("%d ", p++);
通过指针变量可以实现字符串的输入和输出,例如:
char s[] = {"abcdefghijk"}, *p;
p = s;
for (i = 0; i < 3; i++) printf("%s\n", (p + i));
总结
指针变量是C语言中一个重要的概念,它可以使程序简洁、紧凑、高效。但是,指针变量的使用也需要小心,因为它的值只能是一个地址,不能和其他类型的变量之间相互赋值。
参考文献
* 《C语言程序设计》by K&R
* 《C语言指针》by C. S. Liu
关键词
C语言、指针、指针变量、指针运算、数组、字符串