不是++的优先级高吗,而后在引用,为什么在编译出来,是先引用后++
你这个有点像i++和++i的区别。
char ch[] = "hello"; char* p = ch; cout << *p++ << endl;
*和++优先级一样,所以的确是先执行p++,但是p++跟i++一样,是先执行完p当前操作,再执行++操作,就会导致先输出*p,也就是h先输出,然后执行++操作,p指针指向e,所以就算你加个括号变成*(p++),也还是一样的结果,先将p指向的当前值输出,然后后移。