A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 菜鸟_琦 中级黑马   /  2014-10-25 22:15  /  1121 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. #include <stdio.h>

  2. void change(int n);

  3. int main()
  4. {
  5.         int a= 90;
  6.         change(a);
  7.         printf("%d\n",a);
  8.         return 0 ;
  9. }
  10. void change(int n)
  11. {
  12.         n = 10;
  13. }
  14. 此段代码为数值传递,输出的a的值仍为90,因为数值传递改变形参的值不影响实参的值

  15. #include <stdio.h>

  16. void change(int *n);

  17. int main()
  18. {
  19.         int a= 90;
  20.         change(&a);
  21.         printf("%d\n",a);
  22.         return 0 ;
  23. }
  24. void change(int *n)
  25. {
  26.         *n = 10;
  27. }

  28. 此段代码为指针传递,调用函数时传入的是a在内存中的地址,所以change进入到地址里修改a的值,输出的a为10
  29. #include <stdio.h>
  30. int main()
  31. {
  32.         int a= 90;
  33.         int *p = &a; //此时的*仅代表是指针类型的变量
  34.         int **pp = &p;//此时的** 仅代表是指向指针类型数据的指针类型的变量
  35.          a= 20;
  36.         *p = 20;//此时的*是访问指针变量p指向的存储空间a,
  37.         //*pp == p//等价替换,此时的*是访问指针变量pp指向的存储空间p,
  38.         //**pp == *p == a
  39.         **pp =20;此时的**是访问指针变量pp指向的存储空间里面的p指向的存储空间a,
  40.         printf("%d\n",a);
  41.         return 0;
  42. }
复制代码

最后一段代码说明了指向指针的指针,怎么修改int类型a的值,

评分

参与人数 1技术分 +1 收起 理由
星河鹭起 + 1

查看全部评分

5 个回复

倒序浏览
斑竹我太爱你了~~~
回复 使用道具 举报
支持一下楼主,走到哪一步了?
回复 使用道具 举报
微雨独行 发表于 2014-10-26 16:53
支持一下楼主,走到哪一步了?

还在C,
回复 使用道具 举报

楼主加油啊  希望成为同学
回复 使用道具 举报
楼主也想啊,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马