赞
踩
- # include <stdio.h>
- /*
- 如何通过函数修改实参的值(i的值) --指针;
- 2016年6月1日13:42:29
- */
- void f(int *e); //函数声明必须放在前面
-
- int main(void)
- {
- int i = 10; //现在我要通过f()修改实参i的值
- f(&i);
- printf("i = %d\n", i);
- return 0;
- }
-
- void f(int *p)
- {
- *p = 1; //*p等价于i
- }
以下是6_2:
- # include <stdio.h>
- /*
- 如何通过函数修改一个指针变量的值int *p中p的值 --也是指针
- * ! 指针的指针:int **p !
- 2016年6月1日13:45:04
- */
-
- /*以下都是无法实现的,没有用到指针
- void f(int *e); //函数声明必须放在前面
- int main(void)
- {
- int i = 10;
- int *p = &i; //等价于int *p; p = &i;p现在是一个指针变量,我现在要通过f()修改指针变量p的值
- f(p); //这样肯定改不了,没用指针,p值不会变的
- printf("p = %p\n", p);
- printf("p = %p\n", p);
- return 0;
- }
- void f(int *p)
- {
- p = (int *)0xFFFFFFFF; //虽然0xffffffff看起来是地址,但是它只是十六进制的整数,如果要将其赋值给地址话需要强制转换。
- }
- */
-
- //以下是对的
- void f(int **e); //函数声明必须放在前面
-
- int main(void)
- {
- int i = 10;
- int *p = &i; //等价于int *p; p = &i;p现在是一个指针变量,我现在要通过f()修改指针变量p的值
- // f(p); //这样肯定改不了,没用指针,p值不会变的
- printf("p = %p\n", p);
- f(&p); //要想改变p值,只能这里取地址用指针
- printf("p = %p\n", p);
- return 0;
- }
-
- void f(int **q) //f(&p)用的是取地址,形参就不能用int *p了,应该用int **p:指针的指针!!
- {
- *q = (int *)0xFFFFFFFF; //虽然0xffffffff看起来是地址,但是它只是十六进制的整数,如果要将其赋值给地址话需要强制转换。
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。