px是指针,*px表示值,一般定义的时候为区别于其他变量,在变量前加*,表示这是这个指针变量,px就表示指针,后面再在px前加*,表示这个指针指向的值。
创新互联长期为上千余家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为兰溪企业提供专业的成都网站制作、成都做网站,兰溪网站改版等技术服务。拥有十年丰富建站经验和众多成功案例,为您定制开发。
*px++等价于*(px++),跟(*Px)++ 完全是两种运算。很令人遗憾的是*(px++)不等同于px++;
*p;,因为后置++操作的效果是在当前子表达式结束(更准确的术语是“顺序点“sequence point)时生效,*(px++)实际上同义于*px;px=px+1
这个名词翻译成“结合性”的比较多吧。结合性影响的仅限于隐式加括号的位置,例如“前置++,--,!等运算符的的结合性是从右到左”就表示++++a隐式加上括号后等同于++(++a),即括号总是加在靠右的位置;*,/,%,+,-之类的运算符的的结合性是从左到右,就表示 a*b*a隐式加上括号后等同于(a*b)*c。结合性跟运算顺序是毫无关系的,这是极容易造成误解的地方
就是正号,例如表达式“+9”中的+就是一元的
指针变量指向地址,int *是一部分,px是一部分,px才是变量名,px指向地址,*px就是地址中的值。
(事实上x=*(px++)也会是同样的结果~~)
++在右侧时,会先使用变量px的值参与计算整个表达式(相当于先忽略掉++),计算完毕后再给++左边的变量(px)加1,然后再执行下一句;但如果++在左边,如x=*++px,就能使++右边的变量先加1,然后px以新值参与计算整个表达式。
是一样的,*pi=i只是在定义的时候把
i
的地址给
pi指针(px指向x的地址)。“为什么右边同样是地址,左边不相等呢?”这段不知道什么意思?
它们的区别是
左边是利用返回值来读函数,而右边是利用函数调用,
因为只有只有指针才能修改地址的值,要传个地址给它,调用函数中的max要取
*,获取它的值。
因为PX 和PY是被定义的指针 并且已经赋值 他们的值是X和Y的地址
所以在使用中 直接使用PX和PY代替X和Y即可。