#include<stdlib.h>
#include<stdio.h>
//若有p=a(p指向数组a),则:
//p++(或p+=1),表示p指向下一元素
//(*p)++表示p所指向的元素值加1,而非指针值加1
void main()
{
int num[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
for (int i = 0; i < 10; i++)
{
printf("%x,%d\n", &num[i], num[i]);
}
int *p = num;
//printf("%x\n", p);
//printf("%x\n", p++);
//printf("%x\n", p);
//同样的优先级,计算方向为从右向左,*(p++)仍然是后自增
//*p++与*(p++)等价,有同样的优先级,结合方向为自右向左
//*(p++)与*(++p),前者是先取*p的值,然后p值加1(先根据地址取值,然后地址加1(指向下一个元素)),相当于a[i++];后者是先使p加1,再取*p,相当于a[++i]
printf("%d\n", *p++);
p = num;
printf("%d\n", *(p++));
//(*p)++; //根据地址取出变量的值自增
//printf("%d\n", (*p)++);
//printf("%d\n", ++(*p));
//printf("%d,%p\n", num[0], num);
system("pause");
}