www.cnblogs.com/ruiyqinrui

开源、架构、Linux C/C++/python AI BI 运维开发自动化运维。 春风桃李花 秋雨梧桐叶。“力尽不知热 但惜夏日长”。夏不惜,秋不获。@ruiY--秦瑞

python爬虫,C编程,嵌入式开发.hadoop大数据,桉树,onenebula云计算架构.linux运维及驱动开发.

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  2912 随笔 :: 9 文章 :: 51 评论 :: 185万 阅读

函数内容如何改变外部的实参?

对于上面的问题,只有C中的指针能够完成,

基本数据类型作为函数实参,只是将值纯粹的传递给形参,形参的改变并不影响实参.

 

复制代码
 1 #include<stdio.h>
 2 
 3 void swap(char v1,char v2) {
 4     printf("更换前实参传来的形参的值:v1=%d,v2=%d\n",v1,v2);//这里的v1和v2是从下面的main主函数中实参传来的;
 5     char temp;
 6     temp = v1;
 7     v1= v2;
 8     v2 = temp;
 9     printf("更换后形参的值肯定发生了变化:v1=%d,v2=%d\n",v1,v2);
10 }
11 
12 
13 int main(int argc,const char *argv[],const char **env[]) {
14     char a = 10,b = 9;
15     printf("实参在外边函数未调用前:a=%d,b=%d\n",a,b);
16     swap(a,b);
17     printf("实参在外边函数调用后值:a=%d,b=%d\n",a,b);//变量a,b的值是肯定不会改变的,应用外边函数式没法改变此处的数值的,在函数调用过程中,只是实参的值简单的传递给形参,形参的值是会改变 的,但是实参的值是不会改变的,
18 }

复制代码

 

 

测试内部函数改变外部的实参,只有纸质能够做到,

为什么指针能够做到呢?因为指针(是外边函数的形参)指向的就是实参 的内存地址,

void swap(char *v1,char *v2) {

    

}

 

swap(&a,&b);

 上面 的函数就不写了!附个运行结果图

 

2,利用指针实现函数有抖个返回值;

 

指针变量所在内存空间大小可用sizeof函数计算;

int *p1;

int a = sizeof(p1);

指针变量占内存空间大小不会随锁指向的变量类型 的改变而发生大小的改变;

 

posted on   秦瑞It行程实录  阅读(311)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
www.cnblogs.com/ruiyqinrui
点击右上角即可分享
微信分享提示