黑马程序员技术交流社区
标题:
函数调用的数值传递与指针传递
[打印本页]
作者:
菜鸟_琦
时间:
2014-10-25 22:15
标题:
函数调用的数值传递与指针传递
#include <stdio.h>
void change(int n);
int main()
{
int a= 90;
change(a);
printf("%d\n",a);
return 0 ;
}
void change(int n)
{
n = 10;
}
此段代码为数值传递,输出的a的值仍为90,因为数值传递改变形参的值不影响实参的值
#include <stdio.h>
void change(int *n);
int main()
{
int a= 90;
change(&a);
printf("%d\n",a);
return 0 ;
}
void change(int *n)
{
*n = 10;
}
此段代码为指针传递,调用函数时传入的是a在内存中的地址,所以change进入到地址里修改a的值,输出的a为10
#include <stdio.h>
int main()
{
int a= 90;
int *p = &a; //此时的*仅代表是指针类型的变量
int **pp = &p;//此时的** 仅代表是指向指针类型数据的指针类型的变量
a= 20;
*p = 20;//此时的*是访问指针变量p指向的存储空间a,
//*pp == p//等价替换,此时的*是访问指针变量pp指向的存储空间p,
//**pp == *p == a
**pp =20;此时的**是访问指针变量pp指向的存储空间里面的p指向的存储空间a,
printf("%d\n",a);
return 0;
}
复制代码
最后一段代码说明了指向指针的指针,怎么修改int类型a的值,
作者:
菜鸟_琦
时间:
2014-10-25 22:46
斑竹我太爱你了~~~
作者:
微雨独行
时间:
2014-10-26 16:53
支持一下楼主,走到哪一步了?
作者:
菜鸟_琦
时间:
2014-10-26 17:01
微雨独行 发表于 2014-10-26 16:53
支持一下楼主,走到哪一步了?
还在C,
作者:
微雨独行
时间:
2014-10-26 17:02
菜鸟_琦 发表于 2014-10-26 17:01
还在C,
楼主加油啊 希望成为同学
作者:
菜鸟_琦
时间:
2014-10-26 17:07
楼主也想啊,
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2