| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1065 人关注过本帖, 1 人收藏
标题:关于基址!头都大了!
只看楼主 加入收藏
ll2323001
Rank: 2
等 级:论坛游民
帖 子:56
专家分:61
注 册:2009-10-26
结帖率:80%
收藏(1)
已结贴  问题点数:20 回复次数:7 
关于基址!头都大了!
我理解指针,但到了汇编,对于基址,什么一级基址的,头大!!!
搜索更多相关主题的帖子: 基址 
2010-04-13 18:37
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
别急~~~~~~~

慢慢理解~
2010-04-13 22:32
ll2323001
Rank: 2
等 级:论坛游民
帖 子:56
专家分:61
注 册:2009-10-26
收藏
得分:0 
c语言指针懂!一到汇编就卡壳了…太难了
2010-04-13 23:18
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:20 
以下是引用ll2323001在2010-4-13 23:18:50的发言:

c语言指针懂!一到汇编就卡壳了…太难了

真懂吗?

void ** (*d) (int &,char **(*)(char *,char **));

float ( * ( * e[10]) (int &)[5];

都啥意思 呵呵
2010-04-14 09:13
Kiss_零
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:164
专家分:125
注 册:2008-11-21
收藏
得分:0 
C#程序员表示LS的是天书……
2010-04-14 22:15
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
以下是引用Kiss_零在2010-4-14 22:15:16的发言:

C#程序员表示LS的是天书……

这还是指针的基础
2010-04-14 22:29
你们都要疼我哦
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:火星
等 级:贵宾
威 望:49
帖 子:1296
专家分:2746
注 册:2008-7-13
收藏
得分:0 
火星邻居表示。。。实在没有什么表示。。。

小妹,哥哥看你骨骼清奇,绝非凡人,将来必成大业,不如这样,你先把裤裤脱了,待哥哥为你开启灵窍,然后我们一起努力钻研如何
2010-04-16 22:16
wisji8
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:53
专家分:198
注 册:2010-9-19
收藏
得分:0 
回复 4楼 zklhp
真懂吗?

void ** (*d) (int &,char **(*)(char *,char **));

float ( * ( * e[10]) (int &)[5];

都啥意思 呵呵
=======================================================
今天的九点多钟的时候,看到该文章,而且也看到版主发的这两个关于指针的题目。第一眼看到时,发现好多指针运算符,猜想自己一定不会,所以就不打算做版主所发的题目。但接下看下去,发现版主说,这是最基础的,吓了一跳,所以又往回头看这两道题,最后也做了下。不知道上面啥意思,但程序写出来了。可最后程序输出到最后一行输出,爆了。但还是想把程序发出来。但发程序前,先问下两个问题,一,返回指针安全吗?返回指针的指针安全吗?二,为啥有三层楼,从第三层能返回一个指向指针的指针给A,然后拿A返回给第一层的指向指针的指针。最后到第一层楼的时候,程序爆了。
首先,我把void ** (*d) (int &,char **(*)(char *,char **));这个改成
char ** (*d)(int &i, char **(*x1)(char *, char **));
都一样,只不过把void改为char,在char **(*)(char *,char **)的加个名字。
这个分成两部分看。char **(*)(char *,char **)与void ** (*d) (int &,char **(*)(char *,char **));
char **(*x1)(char *,char **)是一个指向函数的指针,返回值是指向字符的指针的指针。
而char ** (*d) (int &,char **(*x1)(char *,char **));也是一个指向函数的指针,返回值是指向字符的指针的指针。最后代码如下,代码写的很烂。
程序代码:
#include <stdio.h>

char ** i_array(int &i, char **(*x1)(char *, char **));
char ** (*d)(int &i, char **(*x1)(char *, char **));
char **c_x1(char *, char **);    

int main(void)
{
    int a = 1;
    char **p1;
   
    d = i_array;
    p1 = (*d)(a, c_x1);
    //这行输出程序爆了。
    printf("看看有没有返回p所指向的地址:%s\n", *p1);
   
    return 0;
}

char **i_array(int &i, char **(*x1)(char *c1, char **c2))
{
    char **p;
   
    char *c = "abc";
   
    printf("输出引用的值1出来看看:%d\n", i);
   
    p = (*x1)(c, &c);
    printf("看看出不出的得Test字符串:%s\n");
    return p;
} 

char **c_x1(char *c1, char **c2)
{
    char *p = "Test";
    char **p1 = &p;
    printf("c1:%s\n", c1);
    printf("c2:%s\n", *c2);
    return p1;
}



2010-09-23 02:38
快速回复:关于基址!头都大了!
数据加载中...
 
   



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

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