->是一个整体,它是用于指向结构体、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++,链表和指针必须熟练掌握!

注:本答案来自百度知道 jiajuehorse

转载于:https://www.cnblogs.com/yanxudong/p/9399646.html

C语言中-是什么意思啊?比如说 p=p-next 到底表达了什么意思,请说清楚点,还有-这个符号是一个整体吗,什么意思??...相关推荐

  1. Java语言中 (游戏:彩票)修改程序清单3-8,产生三位整数的彩票。程序提示用户输入一个三位整数,依照以下规则判定用户是否赢得奖金:

    游戏:(彩票)修改程序清单3-8,产生三位整数的彩票.程序提示用户输入一个三位整数,然后依照以下规则判定用户是否赢得奖金: (1)如果用户输入的所有数包括顺序完全匹配彩票数字,奖金是10 000美元 ...

  2. c语言 指数 2 n,c语言中指数函数中求2的N次方输出2^n中n为常数

    求C语言 编写程序 1的1次方加2的2次方加3的3次方--一直加到n的n次方. 程序如下:#include#includevoidmain(){inti,n,sum=0;scanf("%d& ...

  3. 技巧 | 在R语言中使用高德地图的API进行地理/逆地理编码(地址与经纬度的相互转换)...

    高德地图和百度地图都提供了坐标拾取系统,通过坐标查询或坐标反查操作可以查询一个地址对应的经纬度或经纬度对应的地址名称.但是,手动查询的方式效率很低,也不能进行批量查询. 本篇就来介绍在R语言中调用高德 ...

  4. c语言中怎么使用float,float在c语言中怎么用

    C语言中printf输出float和double都用%f么(scanf又 1.C语言中printf输出float和double都可以用%f,而double型数据还可以用%lf. 2.scanf当中若是 ...

  5. C语言中的选择结构——if语句/if...else语句

    概述 C语言支持最基本的三种程序运行结构:顺序结构.选择结构.循环结构. 顺序结构:程序按顺序执行,不发生跳转. 选择结构:依据是否满足条件,有选择的执行相应功能. 循环结构:依据条件是否满足,循环多 ...

  6. c语言中什么随机存取,C语言中对文件的随机存取

    C语言中对文件的随机存取 C语言中要实现对文件的随机存 取,需要用到两个函数fseek().ftell().下面通过 一个反转显示指定文件的程序来介绍这两个函数的用法. r eserve.c: #in ...

  7. C语言指针使用过程中 不需要清零,C语言中指针使用常见问题及解决办法.pdf

    . - - 自 · - j 1- j w - m - - [ - № 实用第一 智慧密集 C语 i觅 及 捧法l j||? l .. 一 摘 要:讲述 了在 c语言中指针使用时所 出现的一些常见问题 ...

  8. define在c语言中的作用域,define是什么意思,【C语言】“define”是什么意思

    导航:网站首页 > define是什么意思,[C语言]"define"是什么意思 define是什么意思-,[C语言]"define"是什么意思?代表什么 ...

  9. c语言里的%p的作用,c语言中 %p的含义

    格式控制符"%p"中的p是pointer(指针)的缩写.指针的值是语言实现(编译程序)相关的,但几乎所有实现中,指针的值都是一个表示地址空间中某个存储器单元的整数.printf函数 ...

  10. c语言中一些常用的逻辑运算,C语言中的位运算和逻辑运算

    这篇文章来自:http://blog.csdn.net/qp120291570/article/details/8708286 位运算 C语言中的位运算包括与(&),或(|),亦或(^),非( ...

最新文章

  1. Java基础学习总结——Java对象的序列化和反序列化
  2. python yield 简单用法_python中 yield 的用法 (简单、清晰)
  3. [LeetCode]题解(python):086-Partition List
  4. 【汇总推荐】深度学习、自然语言处理干货笔记汇总
  5. Pythton3实例
  6. vue_devtools的安装及资源(chrome and edge上的安装)
  7. axios 超时_聊聊 Vue 中 axios 的封装
  8. 【SKILLS】About the phonetics
  9. ERROR 1044 (42000)
  10. java人脸识别Demo(数据库mongo)
  11. mysql 网页_mysql网页客户端工具
  12. Barrett reduction算法
  13. 基于ABP的AppUser对象扩展
  14. 学习C语言的一些感悟
  15. Mac上使用IE浏览器
  16. 记一次Prometheus完整监控案例
  17. 模仿懒惰加载的图片加载方法
  18. 笔记本计算机屏幕亮度暗,笔记本屏幕暗,教您怎么解决
  19. 神经胶质瘤是怎么引起的,胶质瘤和神经胶质瘤
  20. OpenGL 透视投影 齐次裁剪空间 深度缓存

热门文章

  1. 当路町-网络下载应用系列之三-认识磁力链接Magnet URL
  2. linux figlet 制作 banner
  3. JavaSrcipt学习(学习打卡Day9)
  4. 使用 Ctrl + R 命令反向查找/搜索历史【笔记】
  5. Java项目架构的演变
  6. 女主学霸男主学神小说计算机系的,5本双学霸校园甜文:忠犬学神男主VS低情商学霸女主,全程高甜!...
  7. ubuntu安装anaconda3+cuda11.2+cuDNN+pytorch1.7
  8. matlab提取多边形区域_如何利用Matlab求任意多边形的面积
  9. 如何在win10下安装Docker
  10. 机器学习笔记 - 优化简介