qwfc.net
当前位置:首页 >> C语言中(*p)[5]与*P[5]有什么区别?各代表什么意... >>

C语言中(*p)[5]与*P[5]有什么区别?各代表什么意...

在c语言中* 是指针运算符.*p表示指针变量p所指向的变量的值.即p中存储的内存地址 所存储的变量的值.另外 容易混淆的地方是;定义一个指针变量p时,如 int *p; 表示定义了一个指向整型变量的指针变量p.望采纳.

首先,*和++的优先级相同,是右结合运算符.所以*++p等价于*(++p)*p++等价于*(p++) 因此*++p就是试p的值先加一,然后取其所指向的内容.*p++就是先取p指向的内容,然后p的值加一 这里的加一不是简单的数字加一,是和p的类型有关.如果p是整形的指针变量,则p的值在16位机上加了2,而在32位机上加了4.就是p的值增加了一个他的类型长度.等价于p+sizeof(*p).是的,下面朋友说的对,当时没注意.应该等价于p+sizeof(*p).希望给予采纳!

**P是一个二级指针*P中的P存放某一个变量地址 **P中的P就是存放一个指针的地址

*p++ 先取指针p指向的值(数组第一个元素1),再将指针p自增1;(*p)++ 先去指针p指向的值(数组第一个元素1),再将该值自增1(数组第一个元素变为2*++p 先将指针p自增1(此时指向数组第二个元素),* 操作再取出该值++*p 先取指针p指向的值(数组第一个元素1),再将该值自增1(数组第一个元素变为2)

int **p 定义一个指向指针的指针,具体意思是,该变量是用来存放另一个指向整型变量的指针变量地址的int *p[5] 定义一个指针数组,用来存放5个指向整型变量的指针变量地址

int p[4][5]就是一个二维数组,这个数组有4行5列个元素int (*p)[5]是个数组指针,这个指针指向一个数组,指向的这个数组有5个整型元素int *p[5]是个指针数组,这个数组是有5个指向整型变量的指针组成的

*P++ :*和++都是同级运算符,右结合.但++要整个表达式运算完了才运算,先提取P指向对象的值,然后P再做++运算,指向下一个对象.*p++的意思就是先取出指针p指向的地址单元的数据,之后再将该值加1.下面具体区分1、*p++:只将p

准确的名字是:指向指针的指针**p一般只会在定义变量的时候出现.如:char **p;即定义一个指向指针的指针.可以看作是char *(*p);或者是char *p;long *q; q=&p;仔细分析就能理解了.

若定义int *p;则p-->5是错误的,不可能.

呵呵,这是c语言运算符优先的问题1、()的级别最高.2、*,++都是单目运算.级别是一样的.同级别的是从右往左结合的.3、p++表示把p先用,后把p+1 ++p

lpfk.net | ncry.net | bestwu.net | mqpf.net | jinxiaoque.net | 网站首页 | 网站地图
All rights reserved Powered by www.qwfc.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com