aladiu 发表于 2010-11-29 23:06:23

关于指针下标问题,跪求高手

struct simple
{
    int a;
    int b;
    int c;
};

struct complicate
{
    int d;
    int e;
    int f;
    int g:
    char f;

};

struct simple *mylove;
struct complicate *this;
this = (struct complicate *)(&mylove);   /*怎么理解*/
指针的下标移动一位??表示????
跪求高手??

lalapunk1983 发表于 2010-11-29 23:48:25

结构体指针强制转换啊。
数组下标跟指针下标类试,这样写只是个人习惯,
我认为就是mylove指针后的的一个struct simple类型指针强制转换成struct complicate类型并赋给this。

aladiu 发表于 2010-11-30 10:24:20

回复【1楼】lalapunk1983
-----------------------------------------------------------------------

楼上说的,不对啊,怎么会struct simple类型指针强制转换成struct complicate,强制转换的是指针。。。

lalapunk1983 发表于 2010-11-30 10:27:35

struct simple类型指针强制转换成struct complicate类型(指针)
不要扣语法啊。我语文底子差。
括号的字一定要加上才懂吗?

usingavr 发表于 2010-11-30 10:34:04

可能有一个simple和一个complicate刚好是连续存储的,这样做可以通过指向simple的指针来定位指向complicate的指针

aladiu 发表于 2010-11-30 10:40:38

回复【4楼】usingavr
-----------------------------------------------------------------------

这个介绍有点感觉了,估计程序就希望两个结构体在内存中是连续储存的。complicate紧跟simple的后面。

aladiu 发表于 2010-11-30 10:42:57

回复【3楼】lalapunk1983
-----------------------------------------------------------------------
(&mylove)关键是这个啊,   lalapunk1983能否解释的易懂点。

usingavr 发表于 2010-11-30 10:48:40

&mylove 相当于指向 mylove + sizeof(simple),指向mylove之后

lbc___ 发表于 2010-11-30 10:49:29

就是把mylove所指处的一个simple所占的空间之后的地址强制赋给为complicate的指针嘛。
执行完了之后complicate的指针就指向紧接着这个simple之后的那个位置。

lalapunk1983 发表于 2010-11-30 10:50:21

typedef struct simple
{
    int a;
    int b;
    int c;
}SIMPLE;

typedef struct complicate
{
    int d;
    int e;
    int f;
    int g:
    char f;

}COMPLICATE;

COMPLICATE *this;
SIMPLE mylove;

this = (struct complicate *)(&mylove);

这样应该明白了吧,如果他没定义mylove数组的话编译会不会报错我就不清楚了。

自己可以随便写点数据然后软仿下看看情况就知道了。

zjwznlz 发表于 2010-11-30 11:04:05

struct simple
{
    int a;
    int b;
    int c;
};

struct complicate
{
    int d;
    int e;
    int f;
    int g:
    char f;

};

struct simple *mylove;
struct complicate *this;
this = (struct complicate *)(&mylove);

我的理解 应该是指向simple数组 int b;开始的地址

aladiu 发表于 2010-11-30 11:51:57

回复【10楼】zjwznlz 泥鳅
-----------------------------------------------------------------------

老兄,你说this指向向simple数组 int b;开始的地址

我看明显不对嘛,,

zzzs 发表于 2010-11-30 12:00:18

9楼说的对

huang_zl 发表于 2010-12-1 16:19:58

this 将指向 mylove的起始地址
页: [1]
查看完整版本: 关于指针下标问题,跪求高手