| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2936 人关注过本帖
标题:初来乍到, 有问题请教
只看楼主 加入收藏
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
回复 50楼 fenghelong
5楼和35楼

总有那身价贱的人给作业贴回复完整的代码
2012-07-02 10:57
wangchengbin
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2012-6-27
收藏
得分:0 
回复 45楼 TonyDeng
...?
2012-07-03 16:49
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
一个帖问那么多附加题,何况还问到网络底层,应该去网络板块。我不懂这个,你找精通通讯底层的人吧。

授人以渔,不授人以鱼。
2012-07-03 17:02
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
这个兔子表情不错。

梅尚程荀
马谭杨奚







                                                       
2012-07-03 17:21
姻脂梦
Rank: 6Rank: 6
等 级:侠之大者
帖 子:264
专家分:424
注 册:2012-7-3
收藏
得分:0 
新人前来学习
2012-07-03 19:00
zhangqi_gsts
Rank: 6Rank: 6
来 自:甘肃天水
等 级:侠之大者
威 望:1
帖 子:227
专家分:457
注 册:2011-3-27
收藏
得分:0 
p是指针,在32位机上,任何类型的指针都占4个字节
2012-07-03 21:03
wangchengbin
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2012-6-27
收藏
得分:0 
回复 10楼 wangchengbin
下面这代码解释不通,为什么程序到了红色部分结果是5呢?
 而int s=0的时候已经在main函数里是局部变量啊.  我认为是0呢.   

#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-05 14:35
wangchengbin
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2012-6-27
收藏
得分:0 
回复 53楼 TonyDeng
.
2012-07-05 19:11
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用wangchengbin在2012-7-5 14:35:21的发言:

下面这代码解释不通,为什么程序到了红色部分结果是5呢?
 而int s=0的时候已经在main函数里是局部变量啊.  我认为是0呢.   

#include
#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);
}

你把函数f()的代码嵌入到调用处看看就知道了。

#include
#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);
}

你上面红色的语句,实际上等价于下面红色的语句,结果如何,是很容易看得出的。

[ 本帖最后由 TonyDeng 于 2012-7-6 20:20 编辑 ]

授人以渔,不授人以鱼。
2012-07-06 20:16
wangchengbin
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2012-6-27
收藏
得分:0 
回复 59楼 TonyDeng
你建立(*(&a)++)的目的是从int f(int *a) 函数返回的(*(&a)++)  我想知道为什么在(&a)++  前加*     *a  已经指向&a, 应该就是(&a)++ 吧?  请帮忙的解释清楚点.我基础差.
ThanKS

#include
#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-06 22:44
快速回复:初来乍到, 有问题请教
数据加载中...
 
   



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

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