C 函数与指针(function & pointer)

  1. /*
  2. * function.c
  3. * 函数在C中的使用
  4. * */
  5.  
  6. #include <stdio.h>
  7.  
  8. int noswap(int x, int y)
  9. {
  10. /*
  11. * 函数会将传进来的参数复制一份,所以main中的x和y和noswap函数中的x和y的地址不同
  12. * 因而,在这个函数中对x和y的操作并不会影响到main函数中的x和y
  13. * */
  14. printf("在noswap函数中:\n");
  15. printf("x的值为%d,地址为%p\n", x, &x);
  16. printf("y的值为%d,地址为%p\n", y, &y);
  17.  
  18. int tmp = x;
  19. x = y;
  20. y = tmp;
  21. }
  22.  
  23. int swap(int *x, int *y)
  24. {
  25. /*
  26. * 在这个函数中,参数是两个指针,这两个指针存储的main函数中x和y的地址
  27. * 因此,可以通过这两个指针,对main函数中的x和y进行调换
  28. * */
  29. printf("在swap函数中:\n");
  30. printf("指针x指向的地址为%p,值为%d,指针本身的地址为%p\n", x, *x, &x);
  31. printf("指针y指向的地址为%p,值为%d,指针本身的地址为%p\n", y, *y, &y);
  32.  
  33. int tmp = *x;
  34. *x = *y;
  35. *y = tmp;
  36. }
  37.  
  38. int main(void)
  39. {
  40. int x = , y = ;
  41.  
  42. printf("在main函数中:\n");
  43. printf("x的值为%d,地址为%p\n", x, &x);
  44. printf("y的值为%d,地址为%p\n", y, &y);
  45.  
  46. noswap(x, y);
  47. printf("经过noswap函数,x=%d,y=%d\n", x, y);
  48.  
  49. swap(&x, &y);
  50. printf("经过swap函数,x=%d,y=%d\n", x, y);
  51.  
  52. return ;
  53. }

C 函数与指针(function & pointer)的更多相关文章

  1. 指向函数的指针 ------ 函数指针(function pointer)

    函数指针: 指向函数的指针, 首先是一个指针, 这个指针指向一个函数. 函数具有可赋值给指针的物理内存地址,一个函数的函数名就是一个指针,它指向函数的代码.一个函数的地址是该函数的进入点,也是调用函数 ...

  2. 指针函数(Pointer Function)和函数指针(Pointer to Function或Function Pointer)

    一.指针函数 1.解释:指针函数很好理解:简单来说,就是一个返回指针的函数,本质是一个函数.如: int fun(int x,int y);    //这是一个普通函数的声明,返回值是一个int类型, ...

  3. 《C和指针(Pointer on c)》 学习笔记(转自:http://dsqiu.iteye.com/blog/1687944)

    首先本文是对参考中三个连接的博客进行的整理,非常感谢三位博主的努力,每次都感叹网友的力量实在太强大了…… 第一章 快速上手 1.  在C语言中用/*和*/来注释掉这段代码,这个实际上并不是十分的安全, ...

  4. 《C和指针(Pointer on c)》 学习笔记

    转载:http://dsqiu.iteye.com/blog/1687944 首先本文是对参考中三个连接的博客进行的整理,非常感谢三位博主的努力,每次都感叹网友的力量实在太强大了…… 第一章 快速上手 ...

  5. 《C++ Primer》之指向函数的指针

    函数指针是指指向函数而非指向对象的指针.像其他指针一样,函数指针也指向某个特定的类型.函数类型由其返回类型以及形参表确定,而与函数名无关: // pf points to function retur ...

  6. C语言学习笔记--函数与指针

    1. 函数类型 (1)C 语言中的函数有自己特定的类型,这个类型由返回值.参数类型和参数个数共同决定.如 int add(int i,int j)的类型为 int(int,int). (2)C 语言中 ...

  7. 【C++】函数和指针

    最近在看C++ primer plus,感觉函数与指针这一章难点比较多,记写笔记,加强理解. From C++ Primer Plus: Chapter 7 Function:C++ Programm ...

  8. STL 函数适配器(function adapter)

    函数适配器(function adapter):通过不同函数适配器的绑定,组合和修饰能力,可以实现强大的功能,配合STL泛型算法完成复杂功能. 绑定(bind) template <class ...

  9. C++-函数与指针的关系(回调函数)

    1.函数类型 C语言中的函数有自己特定的类型 函数的类型由返回值,参数类型和参数个数共同决定 ★ int add(int i, int j)的类型为int(int, int) C语言中通过typede ...

随机推荐

  1. win7+vim搭建+verilog HDL IDE

    参考地址:http://www.huangdc.com/421 参考文章为2016年,部分更新贴于文章内了 安装下载vim vim在win下叫gvim,下载地址:https://www.vim.org ...

  2. echarts 中 参数的详讲

    xAxis 属性 xAxis : [ { type : 'category',//坐标轴类型 // show:'',//是否显示 x 轴 //id:'',组件 ID.默认不指定. //gridInde ...

  3. golang--海量用户即使通讯系统

    功能需求: 用户注册 用户登录 显示在线用户列表 群聊 点对点聊天 离线留言

  4. ASP.NET Core Identity 的示例

    1. appsettings.json { "ConnectionStrings": { "DefaultConnection": "Server=( ...

  5. 数据库——SQL-SERVER练习(6) 数据库安全性

    一.实验准备 (1)运行SQL-SERVER服务管理器, 启动服务(2)运行查询分析器,  以DBA身份登录数据库服务器:      用户名sa,  密码123456(3)打开CREATE-TABLE ...

  6. 安装keepalived OpenSSL is not properly installed on your system. !!!

    错误信息: configure: error: !!! OpenSSL is not properly installed on your system. !!! !!! Can not includ ...

  7. GO与PHP的AES交互,key长度问题

    今天在使用go与php的AES加解密交互中,一直有个问题那就是在go中加密后,在php端始终都是无法解密,经过排查最后发现是加密key长度引起的问题, 这里简单记录下. go的AES使用的是第三方的库 ...

  8. 盲法介绍及python盲打练习系统

    目录 一:盲打简介与优点 二:如何练习 三:键盘字母排列顺序的口诀 四:python打字练习系统 一:盲打简介与优点   简介:盲打是指打字的时候不用看键盘或看稿打字时的视线不用来回于文稿和键盘之间的 ...

  9. JavaScript的七种数据类型

    我知道这个话题网上说法非常多,甚至还有分出什么"Array,Function"之类的阿猫阿狗的类型.今天来整理这个话题的时候,先贴一张MDN官方的说法: 这个分法是对的,也是目前来 ...

  10. 敏捷软件开发_实例1<二>

    敏捷软件开发_实例1 这本书的实例非常好,给了我非常多的启发.主要讲了两个实例,咖啡机和薪水支付实例,咖啡机实例比较简单并没有用什么设计模式,薪水支付实例用了很多设计模式,包括后面的打包等. 咖啡机实 ...