
C语言结构体指针赋值问题,求大神给个解释?
structperson{intage;};structpersonaa;structperson*bb;bb=(structperson*)malloc(sizeof(...
struct person {
int age;
};
struct person aa;
struct person* bb;
bb = (struct person*) malloc(sizeof(struct person));
memset( bb, 0, sizeof(struct person));
scanf( " %d", &bb->age);
我的问题是:
往地址中存储输入的值,不是用 bb->age 吗? 而 bb->age 就是个地址,为什么还要加个取地址符&呢? 展开
int age;
};
struct person aa;
struct person* bb;
bb = (struct person*) malloc(sizeof(struct person));
memset( bb, 0, sizeof(struct person));
scanf( " %d", &bb->age);
我的问题是:
往地址中存储输入的值,不是用 bb->age 吗? 而 bb->age 就是个地址,为什么还要加个取地址符&呢? 展开
2个回答
展开全部
1、“struct person* bb;” 这一句,确定了bb是个指针。
2、所以,你需要取的是bb这个指针指向的地址,所以,前面需要加&。
3、如果你定义的是 “struct person bb;”,那么,bb就是struct的实体,取其成员age的值时,就不需要前面加&。
4、C++的地址的理解的确是个很头痛,很费脑筯的问题,多看多练吧。
2、所以,你需要取的是bb这个指针指向的地址,所以,前面需要加&。
3、如果你定义的是 “struct person bb;”,那么,bb就是struct的实体,取其成员age的值时,就不需要前面加&。
4、C++的地址的理解的确是个很头痛,很费脑筯的问题,多看多练吧。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询