【发布时间】:2012-12-14 18:25:05
【问题描述】:
我试图找出“。”之间的区别。和“->”C 语言中的数据访问样式。 例如。
struct div{
int quo;
int rem;
};
1) 使用“->”
struct div *d = malloc(sizeof(struct div));
d->quo = 8/3;
d->rem = 8%3;
printf("Answer:\n\t Quotient = %d\n\t Remainder = %d\n-----------\n",d->quo,d->rem);
2) 使用“.”
struct div d;
d.quo = 8/3;
d.rem = 8%3;
printf("Answer:\n\t Quotient = %d\n\t Remainder = %d\n-----------\n",d.quo,d.rem);
这两种情况我得到相同的输出。
答案:商 = 2 余数 = 2
这两种方法在内部如何运作?什么时候应该使用哪一个? 我尝试在互联网上搜索它,但没有太大帮助。任何相关的链接也很感激。
它们在内存中的存储也有什么区别吗?
【问题讨论】:
-
在 StackOverflow 周围的某个地方有一个完美的答案,让我现在就找到它...
-
Here's another which explains C++ 上下文中的差异(C 部分仍然存在)。
-
你的答案就在于你的问题本身。它不在
.和->之间,而是在访问数据的上下文中。
标签: c