2025年3月31日 星期一 乙巳(蛇)年 正月初一 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > C语言

C语言指针作为函数参数

时间:10-08来源:作者:点击数:84

了解了指针的基本概念,接下来让我们看看如何把指针作为函数的参数,来交换两个变量的值。

C语言代码清单 1:指针作为函数的参数间接交换两个变量的值

  • #include <stdio.h>
  • #include <stdlib.h>
  • /*--自定义函数:将指针px、py指向的变量的值进行互换--*/
  • void swap(int *px, int *py)
  • {
  • int temp = *px;
  • *px = *py;
  • *py = temp;
  • }
  • /*--主函数--*/
  • int main( )
  • {
  • system("color 70");
  • int dA, dB;
  • puts("请输入两个整数:");
  • printf("整数dA:");
  • scanf("%d",&dA);
  • printf("整数dB:");
  • scanf("%d",&dB);
  • swap(&dA, &dB);
  • puts("互换以后的变量值:");
  • printf(" dA = %d\n",dA);
  • printf(" dB = %d\n\n",dB);
  • system("pause");
  • return 0;
  • }

运行结果为:

请输入两个整数:
整数dA:10
整数dB:8
互换以后的变量值:
    dA = 8
    dB = 10

通过swap(&dA,&dB);调用 swap( ) 函数后,作为实参的变量地址 &dA 和 &dB 分别被赋值给定义为指针的形参变量 px 和 py,此时指针变量 px 和 py 分别指向变量 dA 和 dB,*px 和 *py 则成为 dA 和 dB 的别名。因而,在 swap( ) 函数内交换 *px 和 *py 的值,就相当于变量 dA 和 dB 的值进行了交换(见图 1)。

函数调用中指针的传递
图 1:函数调用中指针的传递

指针和 scanf() 函数

在使用 scanf( ) 函数从键盘读取数据时,变量名前必须加上一个特殊符号&,这个符号就是取址符。实际上 scanf( ) 函数接收的就是指针(具有内存地址的“值”),由该指针所指的对象(变量)保存从键盘输入的值。

因此,调用 scanf( ) 函数实际上就是将读取到的值存入内存地址指向的变量对象当中(见图 2)。

scanf( ) 函数的调用和 printf( ) 函数的调用
图 2:scanf( ) 函数的调用和 printf( ) 函数的调用
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门