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

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

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

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

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

声明为指针以后,“语句”里,出现 *p, 表示 是 数值,出现 p, 表示 是 地址.int a=5;int *p=&a; printf("%d", *p); // 打印 数值 5 如果 写 printf("%d", p); 不带星号的,则是 a的地址.

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

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

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

x++是先计算后加1 ++x是先加1后计算 main() { int x = 6, y = 5; printf("%d\n",++x+y++); //x先加1再加上y,之后y再自加1,所以是7+5=12,打印出12,这时x=7,y=6 printf("%d\n",++ x+y++); //x先加1再加上y,之后y再自加1,所以是8+6=14,打

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

阶乘?int n=1; for(int i=1;i<=5;i++) { n*=i; }

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