可能重复:C中的
箭头运算符( - >)用法
我想弄清楚"."之间的区别.和" - >"C语言中的数据访问风格.例如.
struct div{
int quo;
int rem;
};
Run Code Online (Sandbox Code Playgroud)
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);
Run Code Online (Sandbox Code Playgroud)
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);
Run Code Online (Sandbox Code Playgroud)
我得到两个案件的相同输出.
答案:商数= 2剩余= 2
这两种方法如何在内部运作?什么时候应该使用哪一个?我尝试在互联网上搜索但没有多大帮助.任何相关链接也表示赞赏.
他们在内存中的存储也有什么区别吗?
Riv*_*asa 11
基本区别是:
. is the member of a structure
-> is the member of a POINTED TO structure
Run Code Online (Sandbox Code Playgroud)
因此,.当直接访问结构中的变量时使用.但是->当您通过指向该结构的指针访问结构的变量时使用.
假设你有结构a:
struct a{
int b;
}
Run Code Online (Sandbox Code Playgroud)
然而,说c是指针,a然后你知道:c = (*a).因此->被用作某种情况的替代品..所以(*a).b,你可以做c->b,而不是做,完全相同.
| 归档时间: |
|
| 查看次数: |
1807 次 |
| 最近记录: |