*(p++) = 'a';和*p++ = 'a';的效果是一样的
编者:李国帅
qq:9611153 微信lgs9611153
时间:2009-04-10
问题描述:
()对++的影响如何呢?可以用下面的例子来说明。
所需资源:
VC
例子:
源码
#include <stdio.h>
//#include <stdlib.h>
#include <string.h>
int main(int argc, char **argv) {
char xx[20];
char *p = (char*)xx;
strcpy_s(xx,20,"123456");
*p++ = 'a';
printf("%s\n",xx);//a23456
printf("%c\n",*p);//2
strcpy_s(xx,20,"123456");
p = (char*)xx;
*(p++) = 'a';
printf("%s\n",xx);//a23456,首先xx[0]赋值为‘a’,然后p++,指向xx[1]
printf("%c\n",*p);//2
return 0;
}
总结:
不管如何强调,语句中的++总是在执行完后才进行。