*与++优先级问题
前缀递增递减与*的优先级相同,从右向左
后缀递增递减的优先级比*的优先级低,从左到右
- *p++:先执行*p,p再增1
- *++p:p先增1,再执行*p
举例:
char arr[] = "abcdefghi";
char* p = arr;
- *p++:先*p值为a,再p++
- *++p:p先增1,再执行*p,值为b
完整代码:
#include <iostream>
using namespace std;
int main(int argc, const char * argv[]) {
char arr[] = "abcdefghi";
char* p = arr;
cout << *p << endl; // a
// cout << *p++ << endl; // a
// cout << *p << endl; // b
cout << *++p << endl; // b
cout << *p << endl; // b
return 0;
}