指针的点运算和箭头运算(->)
(其实点运算是结构体变量访问其成员的操作符
箭头运算是结构体指针访问其指向的成员变量的操作符
)
突然发现指针的两个运算符我是不太清楚的,就翻书搞了下:其实点运算和箭头运算都可以当作访问指针所指向的 结构体或者类对象的成员是用的操作符。比如:
struct song
{
int a;
}
有这样一个结构体,定义:
song s;
s.a=1;
song *p;
p=&s;
那么要访问指针p所指向的内存:
(*)p.a 和 p->a 是等价的
PS:
1.点运算比*运算优先级高,故如果用 . 运算,括号不可省。因为(*)p是指针怕指向的结构体变量,故可以用点运算来访问其成员
2.而箭头运算只能指针用,比如 声名 int *p
p是指针,*p就是p所指向的一个int 变量的内存
另外附一篇blog参考
http://blog.csdn.net/taric_ma/article/details/7397362
时间: 2024-10-13 04:51:20