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

如题所述

  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#等。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-10-09
你好,可以这么理解:

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

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

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

注意:变量 ++ 这种格式的表达式值是变量值本身,赋值之后变量值才自加 1.
第2个回答  2012-10-09
*与++都是同级单目运算,所以他们的运算顺序由结合方向决定的,他们具有自右向左的顺序,
a=*p++ 的意思是先将指针变量p指向的数据赋值给a ,然后 在将指针变量p加1,即指向下一个数据
第3个回答  2012-10-09
把p中的内容送入寄存器(实际上是个地址),然后p自增1,再通过寄存器中的地址寻址到内存中的值赋给a
问题的关键在于++运算符的优先级比*的优先级要高,由于是后++,所以a得到的是p自增之前指向的内存中的值
第4个回答  2012-10-09
*p指针指向的值 赋值给a 然后指针后移

一楼的说反了
相似回答