C++ 如何为结构成员中的双指针赋值?
出于某种原因,我想给struct成员中的双指针赋值。我有三个成员的结构,第一个是int,第二个是指向那个int的指针,第三个是双指针,指向第二个成员(指向指针)。第三个成员也不知道如何定义。资料来源如下:C++ 如何为结构成员中的双指针赋值?,c++,pointers,struct,double,C++,Pointers,Struct,Double,出于某种原因,我想给struct成员中的双指针赋值。我有三个成员的结构,第一个是int,第二个是指向那个int的指针,第三个是双指针,指向第二个成员(指向指针)。第三个成员也不知道如何定义。资料来源如下: #include <iostream.h> typedef struct { int a; int *b; int **c; } st; st st1, *st2 = &st1; void main(){ // first define a m
#include <iostream.h>
typedef struct {
int a;
int *b;
int **c;
} st;
st st1, *st2 = &st1;
void main(){
// first define a member
st1.a = 200;
// second assign b pointer member to a
st2->b = &st1.a;
// third assign c pointer member to b (but that don't work)
*(st2)->c = st2->b;
}
#包括
类型定义结构{
INTA;
int*b;
int**c;
}st;
stst1,*st2=&st1;
void main(){
//首先定义一个成员
st1.a=200;
//第二,将b指针成员分配给a
st2->b=&st1.a;
//第三,将c指针成员分配给b(但这不起作用)
*(st2)->c=st2->b;
}
OS:Win 7, 64,C++(C++ +Builder 2010)
< P>试试:st2->c = &st2->b;
将指针指定给指针与将指针指定给int完全相同。只需将指针的地址而不是int的地址指定给指针即可。尝试以下操作:
st2->c = &st2->b;
typedef struct {
int a;
int *b;
int **c;
} st;
st mySt;
void main() {
mySt.a = 200;
mySt.b = &mySt.a;
mySt.c = &mySt.b;
}
将指针指定给指针与将指针指定给int完全相同。只需给它指针的地址,而不是int的地址
typedef struct {
int a;
int *b;
int **c;
} st;
st mySt;
void main() {
mySt.a = 200;
mySt.b = &mySt.a;
mySt.c = &mySt.b;
}
在最后一个赋值中,您得到字段b
的地址,这是一个指针,因此它是指针的地址,然后字段c
被正确初始化为指向指针的指针
使用最后一个赋值,得到字段“代码>代码> b/COD>,这是一个指针,所以它是指针的地址,然后字段<代码> c>代码>被正确初始化为指针的指针。< /p>这不是C++,而<代码>无效主() >在C或C++中是不合法的……我不会调用<代码> int *>代码> a <代码>双指针< /代码>,这听起来好像是一个指向double的指针,即<代码> double *<代码>。调用它“代码>指针指向int < /COD>。这都不是C++,而