【发布时间】:2017-11-22 14:04:03
【问题描述】:
#include<stdio.h>
struct data{
int i;
struct data *p;
};
int main() {
struct data *p=malloc(sizeof(struct data));
//How do i use pointer to structure to read a integer in member variable i?
scanf("%d",&p->i); // I am advised to use this,Can you interpret this??
scanf("%d",&(*p).i); // Is this valid?
scanf("%d",p->i); // Why is this not valid since p is nothing but a pointer
}
解释这个
&p->i。为什么这个代表成员变量i的地址?这是
scanf("%d",&(*p).i);有效吗?为什么?
【问题讨论】:
-
请不要即时为问题输入代码。先离线做,编译然后复制粘贴。您的代码不可能是您实际尝试过的。它到处都是不正确的。
-
这是我编辑的错字
-
请注意,
main()中的局部变量i未使用,与同名结构成员完全无关。 -
另请注意,当您需要多个级别时,箭头运算符比“星点”表示法更可取。例如,
p->next->next比使用星号、圆点和括号的等价物更容易输入和阅读。
标签: c pointers structure scanf