同样的一段程序,加上了地址,但数值就完全不一样了,这个是为什么?
tc2.0
#include"stdio.h"
int data[2]={100,200};
int moredata[2]={300,400};
int main(void)
{
int *p1, *p2, *p3;
p1=p2=data;
p3=moredata;
printf("*p1=%d, *p2=%d, *p3=%d\n", *p1, *p2, *p3);
printf("*p1++=%d, *++p2=%d, (*p3)++=%d\n", *p1++, *++p2, (*p3)++);
printf("*p1=%d, *p2=%d, *p3=%d\n", *p1, *p2, *p3);
return 0;
}
*p1=100, *p2=100, *p3=300
*p1++=100, *++p2=200, (*p3)++=300
*p1=200, *p2=200, *p3=301
*****************************************************
#include"stdio.h"
int data[2]={100,200};
int moredata[2]={300,400};
int main(void)
{
int *p1, *p2, *p3;
p1=p2=data;
p3=moredata;
printf("*p1=%d, *p2=%d, *p3=%d, *p1=%p, *p2=%p, *p3=%p\n",
*p1, *p2, *p3,*p1, *p2, *p3);
printf("*p1++=%d, *++p2=%d, (*p3)++=%d,*p1++=%p, *++p2=%p, (*p3)++=%p\n",
*p1++, *++p2, (*p3)++,*p1++, *++p2, (*p3)++);
printf("*p1=%d, *p2=%d, *p3=%d,*p1=%p, *p2=%p, *p3=%p\n",
*p1, *p2, *p3,*p1, *p2, *p3);
return 0;
}
*p1=100, *p2=100, *p3=300, *p1=0064, *p2=0064, *p3=012C
*p1++=200, *++p2=302, (*p3)++=301,*p1++=0064, *++p2=00C8, (*p3)++=012C
*p1=302, *p2=302, *p3=302,*p1=012E, *p2=012E, *p3=012E |