C语言中,a=*p++什么意思?

 我来答
千锋教育
2015-12-07 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部
  a=*p++的意思是p指针指向的值赋给a,然后指针加一指向下个单元。

  C语言,是一种通用的、过程式的编程语言,广泛用于系统与应用软件的开发。具有高效、灵活、功能丰富、表达力强和较高的移植性等特点,在程序员中备受青睐。最近25年是使用最为广泛的编程语言。
  C语言是由UNIX的研制者丹尼斯·里奇(Dennis Ritchie)于1970年 由 肯·汤普逊(Ken Thompson)所研制出的B语言的基础上发展和完善起来的。目前,C语言编译器普遍存在于各种不同的操作系统中,例如UNIX、MS-DOS、Microsoft Windows及Linux等。C语言的设计影响了许多后来的编程语言,例如C++、Objective-C、Java、C#等。
幸福de小阳
2012-10-09 · TA获得超过1103个赞
知道小有建树答主
回答量:342
采纳率:0%
帮助的人:251万
展开全部
你好,可以这么理解:

p 是一个指针变量,他所指向的变量的类型与 a 的类型一致。

p 指针指向的变量值是多少,那么 a 就等于该值。

之后 p 指针指向的那个变量值自加 1.

注意:变量 ++ 这种格式的表达式值是变量值本身,赋值之后变量值才自加 1.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gui_happy
2012-10-09 · TA获得超过2091个赞
知道大有可为答主
回答量:4276
采纳率:42%
帮助的人:3015万
展开全部
*与++都是同级单目运算,所以他们的运算顺序由结合方向决定的,他们具有自右向左的顺序,
a=*p++ 的意思是先将指针变量p指向的数据赋值给a ,然后 在将指针变量p加1,即指向下一个数据
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
周生008
2012-10-09 · TA获得超过1222个赞
知道小有建树答主
回答量:1329
采纳率:0%
帮助的人:660万
展开全部
把p中的内容送入寄存器(实际上是个地址),然后p自增1,再通过寄存器中的地址寻址到内存中的值赋给a
问题的关键在于++运算符的优先级比*的优先级要高,由于是后++,所以a得到的是p自增之前指向的内存中的值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沧海雄风2009
2012-10-09 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8525
采纳率:79%
帮助的人:3008万
展开全部
*p指针指向的值 赋值给a 然后指针后移

一楼的说反了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(11)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式