C语言中指针用星号和箭头表示有区别吗
->在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完全等效。
int a = 10;
int *b = &a;
printf("%d\n", *b); //10,b指针指向a,*b表示a
sturct A{
int data;
}
struct A a;
struct A *b;
b = &a;
b->data = 10;
printf("%d %d\n", a.data, b->data); //10 10 # b为结构体指针,指向a,b->data表示其成员data
p ++和i→next,p和i定义的都是什么?
星号表示指针指向的变量。
箭头是主要是结构体指针部分要用到,表示指针指的结构体变量的成员。
你可以理解为一样,只不过他们改变的内容不一样,一个是改变地址的位置,一个是改变地址指向内容的数值