当前位置:   article > 正文

数据结构_P6_p6 表结构

p6 表结构
  1. # include <stdio.h>
  2. /*
  3. 如何通过函数修改实参的值(i的值) --指针;
  4. 2016年6月1日13:42:29
  5. */
  6. void f(int *e); //函数声明必须放在前面
  7. int main(void)
  8. {
  9. int i = 10; //现在我要通过f()修改实参i的值
  10. f(&i);
  11. printf("i = %d\n", i);
  12. return 0;
  13. }
  14. void f(int *p)
  15. {
  16. *p = 1; //*p等价于i
  17. }


以下是6_2:

  1. # include <stdio.h>
  2. /*
  3. 如何通过函数修改一个指针变量的值int *p中p的值 --也是指针
  4. * ! 指针的指针:int **p !
  5. 2016年6月1日13:45:04
  6. */
  7. /*以下都是无法实现的,没有用到指针
  8. void f(int *e); //函数声明必须放在前面
  9. int main(void)
  10. {
  11. int i = 10;
  12. int *p = &i; //等价于int *p; p = &i;p现在是一个指针变量,我现在要通过f()修改指针变量p的值
  13. f(p); //这样肯定改不了,没用指针,p值不会变的
  14. printf("p = %p\n", p);
  15. printf("p = %p\n", p);
  16. return 0;
  17. }
  18. void f(int *p)
  19. {
  20. p = (int *)0xFFFFFFFF; //虽然0xffffffff看起来是地址,但是它只是十六进制的整数,如果要将其赋值给地址话需要强制转换。
  21. }
  22. */
  23. //以下是对的
  24. void f(int **e); //函数声明必须放在前面
  25. int main(void)
  26. {
  27. int i = 10;
  28. int *p = &i; //等价于int *p; p = &i;p现在是一个指针变量,我现在要通过f()修改指针变量p的值
  29. // f(p); //这样肯定改不了,没用指针,p值不会变的
  30. printf("p = %p\n", p);
  31. f(&p); //要想改变p值,只能这里取地址用指针
  32. printf("p = %p\n", p);
  33. return 0;
  34. }
  35. void f(int **q) //f(&p)用的是取地址,形参就不能用int *p了,应该用int **p:指针的指针!!
  36. {
  37. *q = (int *)0xFFFFFFFF; //虽然0xffffffff看起来是地址,但是它只是十六进制的整数,如果要将其赋值给地址话需要强制转换。
  38. }


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/902684
推荐阅读
相关标签
  

闽ICP备14008679号