指针的自增与自减
刚学 理解起来稍微有点难
一步一步来:
先看代码
`#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main() {
int a[3] = { 2,7,8 };
int* p;
int j;
p=a;
j=*p++;
printf(“a[0]=%d,j=%d,*p=%d\n”, a[0], j, *p);
`
a[0]=2;
因为int*p;==inta[3]里的第一位 之前已经说过取多少基于他是什么类型函数 他这里是int型整型 只取前四位 所以是j=2
又因为 后++ 在j=*p++运行完之后
p开始++ 这里的p之前取得是a[0]运算++后取得就是a[1]==7
计算技巧:任何时候都是把后加加去掉,第二步看优先级是否高于++
再来 改一下j=(*p)++
结果
(*p)换成a[0],p[0]也一样;j=*p;(*p)++,2==3 a[0]=3
看优先级 看到[]和()时候 它所指向的就是一个数组里的整型数
当没有[] 或者()时候那么它所指的就是数组而不是具体的整型数。