添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

->是一个整体,它是用于指向结构体、C++中的class等含有子数据的指针用来取子数据。换种说法,如果我们在C语言中定义了一个结构体,然后申明一个指针指向这个结构体,那么我们要用指针取出结构体中的数据,就要用到“->”.

举个例子:
struct Data
   int a,b,c;
};              /*定义结构体*/
struct Data * p;/*定义结构体指针*/
struct Data A = {1,2,3};/*声明变量A*/
int x;/*声明一个变量x*/
p = &A ; /*让p指向A*/
x = p->a;/*这句话的意思就是取出p所指向的结构体中包含的数据项a赋值给x*/
         /*由于此时p指向A,因而 p->a == A.a,也就是1*/
对于一开始的问题 p = p->next;这应该出现在C语言的链表,这里的next应该是一个与p同类型的结构体指针,其定义格式应该是:
struct Data 
   int a;
   struct Data * next;
};/*定义结构体*/
main()
   struct Data * p;/*声明指针变量p*/
   p = p->next;/*将next中的值赋给p*/
    链表指针是C语言的一个难点,但也是重点,学懂了非常有用。要仔细讲就必须先讲变量、指针。
    什么是变量?所谓变量,不要浅显的认为会变得量就是变量。套用我们院长的问话:“教室变不变?”变,因为每天有不同的人在里面上课,但又不变,因为教室始终在那,没有变大或变小。这就是变量:有一个不变的地址和一块可变的存储空间。正常情况下,我们只看到变量这个房间里面的东西,也就是其内容,但不会关注变量的地址,但是C语言的指针,就是这个房间的地址。我们声明变量就相当于盖了间房子存放东西,我们可以直接观看房子里的东西,而声明指针,就是相当于获得了一个定位器,当用指针指向某个变量时,就是用指针给变量定位,以后我们就可以用指针找到他所“跟踪”的变量并可以获得里面的内容。
那结构体呢?结构体就相当于是有好几个房子组成的别墅,几个房子绑定在一起使用。假设现在有很多这种别墅分布在一个大迷宫里,每间别墅里都有一间房子。里面放了另一个别墅的位置信息,现在你手拿定位器找到了第一栋别墅,从里面得到了你想要的东西(链表的数据部分),然后把下一栋别墅的位置计入你的定位器(p = p->next),再走向下一栋别墅……如此走下去,知道走到某地下一栋别墅信息没有了(p->next == NULL),你的旅行结束。这就是链表一次遍历的过程。现在你能明白 p=p->next的含义了吧!
写了这么多。希望你能明白。
    如果想学好c和C++,链表和指针必须熟练掌握!
“->”是一个整体bai,它是用于指du向结构体zhi子数据的指针,用来取子数据。 换种说法,bai如果我们du在 C语言 定义了一个结构体,然后申明一个指针指向这个结构体,那么我们要用指针取出结构体 的数据,就要用到“->”。 问题 的p=p->next ,意思是将p指向的一个结构体实例 的自数据next赋值给p。 _env = env->functions->GetStringUTFChars(env, str1, 0LL); ->在 C语言 称为间接引用运算符,是二目运算符,优先级同成员运算符“.”。 p->a,其 p是指向一个结构体的指针,a是这个结构体类型的一个成员。表达式p->a引用了指针p指向的结构体的成员a。 struct T int a; char b; struct T* p=&s; p->a相当于s.a。 显然,有个等价写法:(*p)
-> 是一个整体,它是用于指向结构bai体、C++ 的class等含有子数据的指针用来取子数据。换种说法,如果我们在 C语言 定义了一个结构体,然后申明一个指针指向这个结构体,那么我们要用指针取出结构体 的数据,就要用到“->”. 举个例子: struct Data int a,b,c; }; /*定义结构体*/ struct Data * p;/*定义结构体指针*/ struct Data A = {1,2,3};/*声明变量A*/ int x;/*声明一个变量x*/
->是一个整体,它是用于指向结构体、C++ 的class等含有子数据的指针用来取子数据。换种说法,如果我们在 C语言 定义了一个结构体,然后申明一个指针指向这个结构体,那么我们要用指针取出结构体 的数据,就要用到“->”. 举个例子: struct Data int a,b,c; }; /定义结构体/ struct Data * p;/定义结构体指针/ struct Data A = {1,2,3};/声明变量A/ int x;/声明一个变量x/ p = &A ; /让p指向A/
大家在看 数据结构 清华版书时,经常会被里面的 * . -> typedef c语言 c++的切换看的云里雾里,运行里面伪代码经常很困扰,网上也大多把 c语言 和c++看成一起混合编译处理,导致大家单纯想理解 c语言 造成很多困扰,下面这篇文章仅针对于 c语言 详细说明上面几个符号的用法,帮助大家理解纯c代码。先说结论,在 C语言 ,对于一个结构体类型变量a 上面两种写法是等价的 对于上面这段代码可以看成在操作系统内部做了上图的操作,首先,创建了一块内存大小为4个字节,首地址0x0000,结束地址为0x0004,对于
->是一个整体,它是用于指向结构体、C++ 的class等含有子数据的指针用来取子数据。换种说法,如果我们在 C语言 定义了一个结构体,然后申明一个指针指向这个结构体,那么我们要用指针取出结构体 的数据,就要用到“->”. 举个例子: struct Data    int a,b,c; };              /*定义结构