| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2936 人关注过本帖
标题:初来乍到, 有问题请教
只看楼主 加入收藏
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你f()函数中的参数a就是&a呀。我前面跟你解释过指针传参在形式上给人造成的误会,你是没有吃透,所以仍然在这个问题上弄不清楚现在为什么会这样。以int* a传入的参数a,其实是调用处实参的&a,而*a才是a,这些符号组合,足以让初学者困惑半年以上。

[ 本帖最后由 TonyDeng 于 2012-7-7 01:08 编辑 ]

授人以渔,不授人以鱼。
2012-07-07 00:57
wangchengbin
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2012-6-27
收藏
得分:0 
回复 61楼 TonyDeng
明白形参传递,  但是我有另外困惑,红色的int a=2应该是全局变量.当调用f(int *a)时return (*a)++ 返回的结果应该是2吧?        谢谢!


#include<stdafx.h>
 #include"stdio.h"
int a=2;
 int f(int *a)
 {
     return (*a)++;
 }
 void main()
 {
     int s=0;
     {
         int a=5;
         s+=f(&a);
     }
     printf("%d\n",s);
     s+=f(&a);
     printf("%d\n",s);
 }
2012-07-07 09:41
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
就不能再起个新帖吗

总有那身价贱的人给作业贴回复完整的代码
2012-07-07 10:12
lyp880924
Rank: 1
等 级:新手上路
威 望:1
帖 子:10
专家分:6
注 册:2012-7-7
收藏
得分:0 
回复 10楼 wangchengbin
-1的二进制表示你应该知道吧 首先写出1的原码 0000 0000 0000 0000 0000 0000 0000 0001 然后得到反码1111 1111 1111 1111 1111 1111 1111 1110
再加1 1111 1111 1111 1111 1111 1111 1111 1111 这就是-1的二进制在内存中的存放方式 换成16进制 不正是0xffffffff吗?我也是新手 个人理解 还望指教
2012-07-07 11:10
胡祥
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-7-8
收藏
得分:0 
不懂
2012-07-08 17:32
快速回复:初来乍到, 有问题请教
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025314 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved