++应在前后顺序点之间执行,对操作数进行更新。
顺序点比如逻辑与,逻辑或,条件,逗号,分号,逻辑比较(==、!=)。
函数调用也是这样,在函数调用执行之前,所有的实际参数必须全部计算出来。
int a[]=[2,2,5,3];
int *p=a;
while(*p++!=5);
此时先执行*p,然后出现了!=顺序点,所以先执行p++,然后判断第一次存储的*p是不是5,也就是执行完这一句,p指向3
while(*p!=5)
p++;
这句执行完,p指向5
++应在前后顺序点之间执行,对操作数进行更新。
顺序点比如逻辑与,逻辑或,条件,逗号,分号,逻辑比较(==、!=)。
函数调用也是这样,在函数调用执行之前,所有的实际参数必须全部计算出来。
int a[]=[2,2,5,3];
int *p=a;
while(*p++!=5);
此时先执行*p,然后出现了!=顺序点,所以先执行p++,然后判断第一次存储的*p是不是5,也就是执行完这一句,p指向3
while(*p!=5)
p++;
这句执行完,p指向5