关于’*’,’++i’&&‘i++‘优先级的问题
一般很多人存在一个误解,认为’++i’优先级高于’i++’,但实质上’++i’和’i++‘不是同一个优先级,相反’i++‘相比于’++i’优先级更高,而’*‘与’++i’是同一个优先级的运算符,按照从左到右依次运算,所以得出的优先级顺序’i++’ >’ ++i’ == ‘*’
很多人在书上看到的或者学到的a = ++i;是先计算++i的值,然后赋值给a,而a = i++;返回的是++之前的值,便认为’i++‘优先级小于’++i’,但是在C语言定义’i++‘这个函数的时候,在a = i++;中,函数内部先存储一个i开始的值,然后执行++,最后把i最开始的值返回给表达式,所以给人造成一种优先级小于’='的错觉,
若果不确信的话,可以试一下以下操作
int a[3]={
0 , 2 , 9 };
int* p = a;
printf("%d,%d\n",