background image

语言指针应用

 摘

 要: 

“指针”是 C 语言的精髓,是 C 语言区独有的功能,在 C 语言的程序设计过程中

起着不可或缺的作用。只有学好了指针才算掌握了

C 语言,同时指针也是 C 语言最危险的

特性,如果使用不当,则很容易指到意想不到的地方,产生错误很难发现。应该特别注意指
针教学,高效应用指针,发挥

C 语言的优势。 

  关键词:

 C 语言 指针 函数 数组 

  

“指针”是 C 语言中广泛使用的一种数据类型,运用指针编程是 C 语言最主要的风格之

一。利用指针可以表示各种数据结构,它与函数、数组的使用和传递数据有密切联系,能方
便地访问数组,还能像汇编语言一样处理内存地址,从而编出精致而高效的程序。指针极大
地强化了

C 语言的功能。学习指针是学习 C 语言最重要的一环,能否正确理解和使用指针

是判断是否掌握了

C 语言的重要标志。但是指针也是 C 语言最危险的特性,如果使用不当,

则很容易指到意想不到的地方,产生错误也很难发现。因此,对于初学者来说,应特别注意
指针的应用。怎样才能应用好指针呢?下面笔者以在计算机

C 语言教学中的体会与大家进

行探讨。

 

  一、理解指针

 

  在

C 语言中任何数据只要定义了,在内存中就是有一定的存储单元的。存储单元就是

变量在计算机中的存储地址,指针就是用来表示这些地址的变量。所以简单地说,指针就是
地址,变量的指针就是变量的地址,这里还涉及一个概念就是指针变量,所谓指针变量就
是用来存放指针(地址)的变量。例如:

int a;假设 a 的地址是 2000,而 2000 又存储在变

point 中,那么变量 point 就是指针的变量简称指针变量,a 就是指针变量所指向的变量。

很多初学者都存在这样的误区:既然指针放的是地址,而

2000 正好是变量 a 的地址,那么

对于指针

point 就可以这样赋值:point=2000,这是错误的,这里的 2000 表示的不是地址是

一个整型数据。所以对于指针变量的赋值只能用取地址运算符

“&”进行赋值即:point=&a;

&a 即为 a 的地址。 
  二、指针与函数

 

  指针作为

C 语言的精华有很多用途,除具有一般的功能外,其中具体特殊功能的应用

总结起来有三个方面:一是用于在函数中可以返回多个值;二是可以实现动态调用函数;
三是实现数组的动态定义。其中,普通变量作为函数的参数,传递的是变量的值,因此只能
带回一个返回值,但在有些场合需要返回多个值,这就必须用到指针做函数的参数,因为
指针作为参数传递的是地址,让实参和形参指向同一个变量的地址,

N 个形参所指向的变

量的值改变了,

N 个实参的值也自然改变了,从而实现了带回多个返回值。这里举个例子,

编写一个函数实现两个数从小到大输出。这个程序需要子函数实现两个数的交换,把交换后
的两个值通过指针传回主函数输出,传回来的是两个值。所以普通变量做函数的参数是无法
实现的,只能用指针作为函数的参数。具体实现:

 

  子函数实现交换:

 

  

swap(p1,p2) 

  

int *p1,*p2; 

  

{int p; 

  

p=*p1; 

  

*p1=*p2; 

  

*p2=p; 

  

  主程序实现调用,输出: