C 函数与指针(function & pointer)

/*
* function.c
* 函数在C中的使用
* */ #include <stdio.h> int noswap(int x, int y)
{
/*
* 函数会将传进来的参数复制一份,所以main中的x和y和noswap函数中的x和y的地址不同
* 因而,在这个函数中对x和y的操作并不会影响到main函数中的x和y
* */
printf("在noswap函数中:\n");
printf("x的值为%d,地址为%p\n", x, &x);
printf("y的值为%d,地址为%p\n", y, &y); int tmp = x;
x = y;
y = tmp;
} int swap(int *x, int *y)
{
/*
* 在这个函数中,参数是两个指针,这两个指针存储的main函数中x和y的地址
* 因此,可以通过这两个指针,对main函数中的x和y进行调换
* */
printf("在swap函数中:\n");
printf("指针x指向的地址为%p,值为%d,指针本身的地址为%p\n", x, *x, &x);
printf("指针y指向的地址为%p,值为%d,指针本身的地址为%p\n", y, *y, &y); int tmp = *x;
*x = *y;
*y = tmp;
} int main(void)
{
int x = , y = ; printf("在main函数中:\n");
printf("x的值为%d,地址为%p\n", x, &x);
printf("y的值为%d,地址为%p\n", y, &y); noswap(x, y);
printf("经过noswap函数,x=%d,y=%d\n", x, y); swap(&x, &y);
printf("经过swap函数,x=%d,y=%d\n", x, y); return ;
}

最新文章

  1. [AS3]as3画笔实例实现橡皮擦功能源代码
  2. Velocity 基本语法
  3. 信号量进程同步,王明学learn
  4. yii2构造方法
  5. marmalade android 5.0 JNI 调用失败的解决方案
  6. type和create type
  7. os x 10.10 測试版系统下载 swift语言学习资料下载
  8. git + tortoisegit安装及配置
  9. logback:用slf4j+logback实现多功能日志解决方案
  10. JAVA基础5——与String相关的系列(2)
  11. JSON字符串与Map互转
  12. Robot Framework - 一些练习
  13. iOS 判断当前网络状态的三种方法
  14. 指令计数器--Program counter
  15. 如何用Baas快速在腾讯云上开发小程序-系列4:实现客户侧商品列表、商品详情页程序
  16. IIS字体文件添加MIME映射
  17. NBUT 1223 Friends number 2010辽宁省赛
  18. git 上传文件到仓库上提示:origin does not to be a git repository
  19. Linux进程管理之“四大名捕”
  20. redis3.0.6安装配置

热门文章

  1. eclispe git config配置文件配置远程仓库
  2. R语言-laohuji
  3. shell基础概念, if+命令, shell中引用python, shell脚本的几种执行方式
  4. 用 Python 批量下载百度图片
  5. jQuery 源码分析(十二) 数据操作模块 html特性 详解
  6. Ansible快速开始-指挥集群
  7. What is Java virtual machine?
  8. [反汇编] 获取上一个栈帧的ebp
  9. Linux 网络相关命令 Cheat Sheet
  10. 关于在 ASP.NET 的 Global.asax 中 Application_Error 方法内,设置跳转到自定义错误页无效的问题