博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
参数和指针
阅读量:6868 次
发布时间:2019-06-26

本文共 1524 字,大约阅读时间需要 5 分钟。

传值和传址:

看下面的代码(传值):

#include
void swap (int x, int y);void swap (int x, int y){ int t; printf("In swap,互换前:x = %d, y = %d\n", x, y);//x = 3,y = 5; t = x; x = y; y = t; printf("In swap,互换后:x = %d, y = %d\n", x, y);//x = 5,y = 3; }int main (){ int x = 3, y = 5; printf("In main,互换前:x = %d, y = %d\n", x, y);//x = 3, y = 5; swap(x, y); printf("In main,互换后:x = %d, y = %d\n", x, y);//x = 3, y = 5; return 0; }

运用指针之后(传址):

#include
void swap (int *x, int *y);void swap (int *x, int *y){ int t; printf("In swap,互换前:x = %d, y = %d\n", *x, *y);//x = 3,y = 5; t = *x; *x = *y; *y = t; printf("In swap,互换后:x = %d, y = %d\n", *x, *y);//x = 5,y = 3;int main (){ int x = 3, y = 5; printf("In main,互换前:x = %d, y = %d\n", x, y);//x = 3,y = 5; swap(&x, &y);//注意这里是交换地址 printf("In main,互换后:x = %d, y = %d\n", x, y);//x = 5, y = 3; return 0; }

函数无法改变实参的值不懂参考

可变参数

#include
- va list- va start- va arg- va end

代码:

#include
#include
有很多宏,可以处理可变参数的函数 int sum (int n,...);//"..."代表占位符,未知数量 ,至少一个 int sum (int n,...){ int i, sum = 0; va_list vap;//定义参数列表 va_start(vap, n);//初始化参数列表 for(i = 0;i < n;i++) { sum += va_arg(vap, int);//获取参数的值 ,参数的类型写清楚 } va_end(vap);//关闭参数列表 return sum; }int main (){ int r; r = sum(3, 1, 2, 3); printf("r = %d\n", r); return 0; }

转载于:https://www.cnblogs.com/zw431387/p/10499783.html

你可能感兴趣的文章
基于Mysql主从同步的读写分离
查看>>
BA 的岗位要求3
查看>>
基于Hyper-V3.0搭建XenDesktop7之九 部署虚拟应用之模板准备
查看>>
JS如何捆绑TypeScript声明文件
查看>>
samba服务配置
查看>>
我的友情链接
查看>>
MyBatis之ResultMap标签
查看>>
[转]WinXP、Win7脚本自动加域及用户资料迁移
查看>>
使用链路聚合进行负载分担
查看>>
NumPy之array
查看>>
ado 设置过滤
查看>>
微软私有云POC部署文档
查看>>
云计算
查看>>
mysql中的主从复制slave-skip-errors参数使用方法
查看>>
永久关闭wps热点新闻的办法
查看>>
飞信机器人安装
查看>>
修改一个字段中的部分内容
查看>>
kubernetes-1.11.0集群部署之master集群 (二)
查看>>
POJ_2001_Shortest Prefixes
查看>>
Webpack 的 HtmlWebpackPlugin 如何控制某个 chunks 的 inject 位置?
查看>>