6个回答
推荐于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
*(++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
展开全部
#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进制,不过不是很推荐这么做。
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进制,不过不是很推荐这么做。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
p++->n先取得P当前指向的结构体的N,再将P指向下一个元素
++p->n再取得P当前指向的结构体的N,再将这个值+1
所以++p->n的值是6
++p->n再取得P当前指向的结构体的N,再将这个值+1
所以++p->n的值是6
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
前者是执行完当前行之后,指针p累加
后者是先将指针p累加,然后在执行当前行
任何一本C语言的书应当都会有++/--前置后置的相关说明以及示例的。
后者是先将指针p累加,然后在执行当前行
任何一本C语言的书应当都会有++/--前置后置的相关说明以及示例的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你好。
在你写的这段程序中,逐行来看。
int *p; //定义了一个整形的指针变量,*p,这里的*在定义的时候使用,是为了说明这是一个指针变量。
printf("%d\n",p); //输出指针变量p所指向的那个变量的值。
printf("%d\n",&p); //输出指针变量p所指向的那个变量的地址。
这里只是简单一说,如果你想进一步弄明白,建议去看C语言指针部分的相关内容。
在你写的这段程序中,逐行来看。
int *p; //定义了一个整形的指针变量,*p,这里的*在定义的时候使用,是为了说明这是一个指针变量。
printf("%d\n",p); //输出指针变量p所指向的那个变量的值。
printf("%d\n",&p); //输出指针变量p所指向的那个变量的地址。
这里只是简单一说,如果你想进一步弄明白,建议去看C语言指针部分的相关内容。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询