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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 ヅ光着脚丫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:06

9 个回复

倒序浏览
写的很对
回复 使用道具 举报
对的,对于一般的数,需要加&,而数组不加,传的都是地址,这样才能该值
回复 使用道具 举报
你分析得很正确,  要修改a的值, 就应该通过传址来修改. 传值引用的话就是复制个值过去, 不会修改原来的值. 理解传埴跟传址, 自然很明白了
回复 使用道具 举报
duzhong 来自手机 中级黑马 2014-8-3 17:41:02
报纸
指针肯定没问题啊,分析也很正确。不过这样写何必呢。change函数可以写获取地址吧。
回复 使用道具 举报
很不错哦...
回复 使用道具 举报
嗯嗯,挺好的!指针的作用很强大
回复 使用道具 举报
正确吗?  你在change函数里用的是 *n = 10;  这样的话是把n的地址改为10了吧,并没有影响a的值吧?
回复 使用道具 举报
对的,分析的正确
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马