99问答网
所有问题
*(p++)与*(++p)的区别
c语言中*(p++)*(++p)有什么区别,望大神举例说明,越细越好
举报该问题
推荐答案 推荐于2018-02-27
*(p++)是先执行,后指针p累加,指向下一个地址
*(++p)是先将pj加一后再指向结果所在的地址
例如int *p=1,s1,s2;
*(p+1)=2;
s1=*(p++);
s2=*p;
printf("%d,%d",s1,s2);
//////////////////////
int *p=1,s1,s2;
*(p+1)=2;
s1=*(++p);
s2=*p;
printf("%d,%d",s1,s2);
第一个的结果为1,2
第二个的结果为2,2
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://99.wendadaohang.com/zd/Be77eWzXX.html
其他回答
第1个回答 2011-02-16
#include <stdio.h>
void main()
{
int *p;//P是一个整型指针
printf("%d\n",p);//以10进制整数的形式输出指针P的值
printf("%d\n",&p);//以10进制整数的形式输出指针P的地址
}
P是指针
&P是指针P的地址
*P是指针P的内容,也就是P所指向的那个地址
注意,内存中的地址都是16进制的,可以转化为10进制,不过不是很推荐这么做。
第2个回答 2008-09-18
p++->n先取得P当前指向的结构体的N,再将P指向下一个元素
++p->n再取得P当前指向的结构体的N,再将这个值+1
所以++p->n的值是6
第3个回答 2013-05-02
前者是执行完当前行之后,指针p累加
后者是先将指针p累加,然后在执行当前行
任何一本C语言的书应当都会有++/--前置后置的相关说明以及示例的。
第4个回答 2011-02-16
你好。
在你写的这段程序中,逐行来看。
int *p; //定义了一个整形的指针变量,*p,这里的*在定义的时候使用,是为了说明这是一个指针变量。
printf("%d\n",p); //输出指针变量p所指向的那个变量的值。
printf("%d\n",&p); //输出指针变量p所指向的那个变量的地址。
这里只是简单一说,如果你想进一步弄明白,建议去看C语言指针部分的相关内容。
1
2
下一页
相似回答
大家正在搜
相关问题
在c语言的指针运算中*(p+1)与p+1有什么区别 p是指针
“*(p++)”和“*(++p)”有什么区别 ?
在c++中 *(p++)和*(++p)有什么区别?为什么会这...
在C语言中, *(p++)、 *(++p) 、*++p 、*...
(*p)++和*(p++)和*p++的区别,为什么?
c语言*(p++)与(*p)++的区别
c语言 *p++与(*p)++、*(p++)三者异同?