电商信息资讯,更全更新信息实报!
主页 > 人物 > > 正文

徐悦:C语言中->是什么意思啊?

来源:未知 发布时间:2020-11-07 06:25 标签:指针结构
浏览:

徐悦:C语言中->是什么意思啊?

  “->”是一个整它是用于指向体子数据针,用来数据。

  换种,如果我们在C语言中定义了一个结构体,然后申明一个指针指向这个结构体,那么我们要用指针取出结构体中的数据,就要用到“->”。

  问题中的p=p->next ,意思是将p指向的一个结构体实例中的自数据next赋值给p。

  扩展资料:

  在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问。

  定义与声明:

  结构体的定义如下所示,struct为结构体关键字,tag为结构体的标志,member-list为结构体成员列表,其必须列出其所有成员;variable-list为此结构体声明的变量。

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

  举个例子:

  struct Data

  {

  int a,b,c;

  };

  struct Data * p;

  struct Data A={1,2,3};

  int x;

  p=&A ;

  x=p->a;

  对于一开始的问题 p=p->next;这应该出现在C语言的链表,这里的next应该是一个与p同类型的结构体指针,其定义格式应该是:

  struct Data

  {

  int a;

  struct Data * next;

  };

  …………

  main()

  {

  struct Data * p;

  ……

  p=p->next;

  }

  链表指针是C语言的一个难点,但也是重点,学懂了非常有用。要仔细讲就必须先讲变量、指针。

  链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。

  链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。

  每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 相比于线性表顺序结构,操作复杂。

  由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比另一种线性表顺序表快得多,但是查找一个节点或者访问特定编号的节点则需要O(n)的时间,而线性表和顺序表相应的时间复杂度分别是O(logn)和O(1)。

  使用链表结构可以克服数组链表需要预先知道数据大小的缺点,链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。

  但是链表失去了数组随机读取的优点,同时链表由于增加了结点的指针域,空间开销比较大。

  链表最明显的好处就是,常规数组排列关联项目的方式可能不同于这些数据项目在记忆体或磁盘上顺序,数据的存取往往要在不同的排列顺序中转换。

  链表允许插入和移除表上任意位置上的节点,但是不允许随机存取。链表有很多种不同的类型:单向链表,双向链表以及循环链表。

  链表可以在多种编程语言中实现。像Lisp和Scheme这样的语言的内建数据类型中就包含了链表的存取和操作。

  程序语言或面向对象语言,如C,C++和Java依靠易变工具来生成链表。

  参考资料:链表–百度百科

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

  举个例子:

  struct Data

  {

  int a,b,c;

  };

  struct Data * p;

  struct Data A={1,2,3};

  int x;

  p=&A ;

  x=p->a;

  对于一开始的问题 p=p->next;这应该出现在C语言的链表,这里的next应该是一个与p同类型的结构体指针,其定义格式应该是:

  struct Data

  {

  int a;

  struct Data * next;

  };

  …………

  main()

  {

  struct Data * p;

  ……

  p=p->next;

  }

  链表指针是C语言的一个难点,但也是重点,学懂了非常有用。要仔细讲就必须先讲变量、指针。

  什么是变量?所谓变量,不要浅显的认为会变得量就是变量。套用我们院长的问话:“教室变不变?”变,因为每天有不同的人在里面上课,但又不变,因为教室始终在那,没有变大或变小。这就是变量:有一个不变的地址和一块可变的存储空间。正常情况下,我们只看到变量这个房间里面的东西,也就是其内容,但不会关注变量的地址,但是C语言的指针,就是这个房间的地址。我们声明变量就相当于盖了间房子存放东西,我们可以直接观看房子里的东西,而声明指针,就是相当于获得了一个定位器,当用指针指向某个变量时,就是用指针给变量定位,以后我们就可以用指针找到他所“跟踪”的变量并可以获得里面的内容。

  那结构体呢?结构体就相当于是有好几个房子组成的别墅,几个房子绑定在一起使用。假设现在有很多这种别墅分布在一个大迷宫里,每间别墅里都有一间房子。里面放了另一个别墅的位置信息,现在你手拿定位器找到了第一栋别墅,从里面得到了你想要的东西(链表的数据部分),然后把下一栋别墅的位置计入你的定位器(p=p->next),再走向下一栋别墅……如此走下去,知道走到某地下一栋别墅信息没有了(p->next==NULL),你的旅行结束。这就是链表一次遍历的过程。现在你能明白 p=p->next的含义了吧!

  写了这么多。希望你能明白。

  如果想学好c和C++,链表和指针必须熟练掌握!

  ->运算是间接寻址,你用多指针的话会发现指针用->这种调用方式更简洁

  链表指C语言的一个难点,但也是重点,学懂了非常有用。要仔细讲就必须先讲变量、指针。

  什么是变量?所谓变量,不要浅显的认为会变得量就是变量。举个例子:“教室变不变?”变,因为每天有不同的人在里面上课,但又不变,因为教室始终在那,没有变大或变小。这就是变量:有一个不变的地址和一块可变的存储空间。正常情况下,我们只看到变量这个房间里面的东西,也就是其内容,但不会关注变量的地址,但是C语言的指针,就是这个房间的地址。我们声明变量就相当于盖了间房子存放东西,我们可以直接观看房子里的东西,而声明指针,就是相当于获得了一个定位器,当用指针指向某个变量时,就是用指针给变量定位,以后我们就可以用指针找到他所“跟踪”的变量并可以获得里面的内容。

  至于我们写代码的结构体就相当于是有好几个房子组成的别墅,几个房子绑定在一起使用。假设现在有很多这种别墅分布在一个大迷宫里,每间别墅里都有一间房子。里面放了另一个别墅的位置信息,现在你手拿定位器找到了第一栋别墅,从里面得到了你想要的东西(链表的数据部分),然后把下一栋别墅的位置计入你的定位器(p

  =

  p->next),再走向下一栋别墅……如此走下去,知道走到某地下一栋别墅信息没有了(p->next

  ==

  NULL),你的旅行结束。这就是链表一次遍历的过程。

  aTdPage[ucTdPageIndex]->OnInit

  ();就相当于一个定位器


徐悦:C语言中->是什么意思啊?

上一篇:上一篇:易智言:DNF故事薄有什么用

下一篇:下一篇:没有了

标签:指针结构

热门文章

  • 雷军“左拥”联想副总裁,“右抱”中兴
    雷军“左拥”联想副总裁,“右抱”中兴

    雷军“左拥”联想副总裁,“右抱”中兴

    2019年1月2号,雷军发布一条微博欢迎卢伟冰,配图是金立手机原总裁卢伟冰与他、黎万强、林斌坐在一起,这边是卢伟冰加入小米的序幕。 尝到了卢伟冰的...

  • 俞渝致信新浪法问:已向法院提交人身安
    俞渝致信新浪法问:已向法院提交人身安

    俞渝致信新浪法问:已向法院提交人身安

    7月9日,《电商报》获悉,今日晚间,俞渝发布了新浪法问的一封回信称,法院已经驳回了她针对李国庆提出的限制令申请,其律师已经再次在北京东城法...

  • 俞渝:2019年是当当加强用数据和智能发展
    俞渝:2019年是当当加强用数据和智能发展

    俞渝:2019年是当当加强用数据和智能发展

    12月9日消息,据新浪财经消息,在2019(第十八届)中国企业领袖年会上,当当网董事长兼CEO、木兰汇常务理事俞渝在发表演讲时表示,2019年是当当加强用...

  • 度小满金融副总裁张旭阳离职,将回归光
    度小满金融副总裁张旭阳离职,将回归光

    度小满金融副总裁张旭阳离职,将回归光

    7月15日消息,据了解,度小满金融对外确认了副总裁张旭阳离职一事。张旭阳未来将回归光大银行并筹建理财子公司。 据《电商报》了解,张旭阳加入百度...

  • “腾讯直播宠粉节”单场直播分享超1.5万
    “腾讯直播宠粉节”单场直播分享超1.5万

    “腾讯直播宠粉节”单场直播分享超1.5万

    今年618,电商直播成为主流消费形式。据腾讯直播披露的数据,6月15日至6月18日 腾讯直播宠粉节活动中,观看人数破万的直播间已逾千场,各品牌及商家卷入超...

人物

更多 >
  • 徐悦:C语言中->是什么意思啊?
    徐悦:C语言中->是什么意思啊?

    “->”是一个整它是用于指向体子数据针,用来数据。换种,如果我们在C语言中定义了一个结构体,然后申明一个指针指向这个结构体,那么我们要用指针...

  • 易智言:DNF故事薄有什么用
    易智言:DNF故事薄有什么用

    国服1217版本后新加入的系统,利用此系统可以了解主务里没有出现的各种故事(剧情党鸡腿福利)故事簿为消耗品,同样分为稀有、传说和神器(紫、橙、...

人物辛宇:carplay是什么,carplay有什么用以及
人物徐智英:【公务员报考时间表】 2021国考
人物许俊豪:鬼吹灯之黄皮子坟什么时候播几
人物殷志源:blame
人物杨澜:mcm是什么牌子的包

专题

更多 >