c语言指针,指向指针的指针

一般指针

1
2
int i = 5, j = 6, k = 7;
int *ip1 = &i, *ip2 = &j;

指向指针的指针:

1
int **ipp = &ip1;

那么现在指针 ipp 指向了 ip1,ip1 指向了 i。*ipp 就是 ip1,**ipp 就是 i,或者说是 5。

& 符号的意思是取地址,也就是返回一个对象在内存中的地址。

* 符号的意思是取得一个指针所指向的对象。 也就是如果一个指针保存着一个内存地址,那么它就返回在那个地址的对象。

简单点就是:
&:取址。
* :取值。


->

->在C语言中称为间接引用运算符,是二目运算符,优先级同成员运算符“.”。
用法:
p->a,其中p是指向一个结构体的指针,a是这个结构体类型的一个成员。表达式p->a引用了指针p指向的结构体的成员a。
例如:
struct T
{
int a;
char b;
}s;

struct T* p=&s;
p->a相当于s.a。
等价写法:(*p).a,和p->a完全等效。

你可能感兴趣的:(规范编程)