黑马程序员技术交流社区

标题: 关于c语言指针,来大神且看我分析对不对。 [打印本页]

作者: ヅ光着脚丫dε尐    时间: 2014-8-2 14:00
标题: 关于c语言指针,来大神且看我分析对不对。
本帖最后由 ヅ光着脚丫dε尐 于 2014-8-6 20:24 编辑
  1. #include <stdio.h>
  2. void change(int *n);
  3. int main()
  4. {
  5.     int a = 90;
  6.    
  7.     change(&a);      //取a的地址传递给change函数,
  8.    
  9.     printf("%d\n", a);    //此时a的值已变为10,输出10
  10.    
  11.     return 0;                           //就是说传递给change函数是a的地址,指针返回10给a的地址,a=90,被覆盖为a=10
  12. }
  13. void change(int *n)     //函数返回10给a
  14. {
  15.     *n = 10;
  16. }
复制代码
我的分析对吗?
作者: 偶太白    时间: 2014-8-2 14:41
写的很对
作者: 陆习康    时间: 2014-8-2 15:25
对的,对于一般的数,需要加&,而数组不加,传的都是地址,这样才能该值
作者: -(_)-    时间: 2014-8-3 01:13
你分析得很正确,  要修改a的值, 就应该通过传址来修改. 传值引用的话就是复制个值过去, 不会修改原来的值. 理解传埴跟传址, 自然很明白了
作者: duzhong    时间: 2014-8-3 17:41
指针肯定没问题啊,分析也很正确。不过这样写何必呢。change函数可以写获取地址吧。
作者: ★彬★卍囧神    时间: 2014-8-3 18:10
很不错哦...
作者: 山涧小草    时间: 2014-8-6 02:21
嗯嗯,挺好的!指针的作用很强大
作者: 小小菜鸟007    时间: 2014-8-6 11:15
正确吗?  你在change函数里用的是 *n = 10;  这样的话是把n的地址改为10了吧,并没有影响a的值吧?
作者: 踏出梦想的轨迹    时间: 2014-8-6 17:36
对的,分析的正确




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2