*(p++)与*(++p)的区别

c语言中*(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
brainfever
2011-02-16
知道答主
回答量:26
采纳率:0%
帮助的人:0
展开全部
#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进制,不过不是很推荐这么做。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
湛蓝之炎
2008-09-18 · TA获得超过244个赞
知道答主
回答量:52
采纳率:0%
帮助的人:66.3万
展开全部
p++->n先取得P当前指向的结构体的N,再将P指向下一个元素
++p->n再取得P当前指向的结构体的N,再将这个值+1

所以++p->n的值是6
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一剑出血
高粉答主

2013-05-02 · 醉心答题,欢迎关注
知道大有可为答主
回答量:5.7万
采纳率:78%
帮助的人:1.7亿
展开全部
前者是执行完当前行之后,指针p累加
后者是先将指针p累加,然后在执行当前行

任何一本C语言的书应当都会有++/--前置后置的相关说明以及示例的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
善·化
2011-02-16
知道答主
回答量:20
采纳率:0%
帮助的人:0
展开全部
你好。
在你写的这段程序中,逐行来看。
int *p; //定义了一个整形的指针变量,*p,这里的*在定义的时候使用,是为了说明这是一个指针变量。
printf("%d\n",p); //输出指针变量p所指向的那个变量的值。
printf("%d\n",&p); //输出指针变量p所指向的那个变量的地址。

这里只是简单一说,如果你想进一步弄明白,建议去看C语言指针部分的相关内容。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式