小标
2018-08-10
来源 :
阅读 1837
评论 0
摘要:本文主要向大家介绍了C/C++知识点之C指针(2)——指针在函数中的应用(程序讲解),通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。
本文主要向大家介绍了C/C++知识点之C指针(2)——指针在函数中的应用(程序讲解),通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。
3-1.c指针用作函数参数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<stdio.h>
typedef unsigned char uint8_t; //类型自定义,通过typedef语句重新把unsigned char命名为uint8_t,目的为了方便
extern void swapdata(uint8_t dat_x,uint8_t dat_y);
int main(void)
{
uint8_t x,y;
printf("请输入x,y:");
scanf("%d,%d",&x,&y);
printf("交换前:x=%d,y=%d\n",x,y);
swapdata(x,y);
printf("交换后:x=%d,y=%d\n",x,y);
return 0;
}
void swapdata(uint8_t dat_x,uint8_t dat_y)
{
uint8_t temp;
temp=dat_x;
dat_x=dat_y;
dat_y=temp;
}
目的:是为了通过swapdate()函数把实参x,y的值进行交换,上述例子是将形参dat_x,dat_y的值进行交换,但是形参的交换并没有改变实参的交换,因为函数在调用时给形参分配了单独的内存空间,实参的值传递给形参实际是把实参的值放在形参的内存空间,形参的值是实参的备份,因此形参交换,实参并不会交换,不能达到交换实参的目的。
结果:
1
2
3
请输入x,y:30,20
交换前:x=30,y=20
交换后:x=30,y=20
3-2 函数调用时,把指针作为函数参数进行传递,即传递变量的地址。在被调函数中,通过指针操作相应的变量,实际操作变量本身。在被调函数中对形参的操作实际就是对实参的操作。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
typedef unsigned char uint8_t;
extern void swapdata(uint8_t *dat_x,uint8_t *dat_y); //函数参数变成指针
int main(void)
{
uint8_t x,y;
uint8_t *p_x,*p_y;
printf("请输入x,y:");
scanf("%d,%d",&x,&y);
p_x=&x;
p_y=&y;
printf("交换前:x=%d,y=%d\n",x,y);
swapdata(p_x,p_y);
printf("交换后:x=%d,y=%d\n",x,y);
return 0;
}
void swapdata(uint8_t *dat_x,uint8_t *dat_y) //形参为两个指针变量,目的是为了承接实参的值,实参是指针类型,
{
uint8_t temp;
temp=*dat_x; //通过取值运算符*与指针变零dat_x结合,访问实参x;调用swapdate()后,指针变量dat_x指向实参x,对*dat_x的操作实际是对实参x的操作。
*dat_x=*dat_y;
*dat_y=temp;
}
结果:
1
2
3
请输入x,y:10,20
交换前:x=10,y=20
交换后:x=20,y=10
本文由职坐标整理并发布,了解更多内容,请关注职坐标编程语言C/C+频道!
喜欢 | 1
不喜欢 | 0
您输入的评论内容中包含违禁敏感词
我知道了

请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号