语句*(x++) = (*x)++; 与(*x++)++;的区别?
性能侠客行 2008-03-12 11:39:55
void main()
{
int *x= NULL;
int y[]={12,45,36,78,80};
x = y+2; //x指针指向y[2],y[2]=36
cout < <"----------*x=" < <*x < <endl;
*(x++) = (*x)++;//首先执行x++,既是x指向y[3],然后给y[3]赋值为*(x)++,因为此时*(x)=y[3]=78,所以y[3]被赋值为79
cout < <"*x=" < <*x < <'\n' < <"*y=" < <*y < <endl;
cout < <"y[0]=" < <y[0] < <endl;
cout < <"y[1]=" < <y[1] < <endl;
cout < <"y[2]=" < <y[2] < <endl;
cout < <"y[3]=" < <y[3] < <endl;
}
*(x++) = (*x)++;//首先执行x++,既是x指向y[3],然后给y[3]赋值为*(x)++,因为此时*(x)=y[3]=78,所以y[3]被赋值为79
但是如果换上语句,
(*x++)++;//疑问语句
或者是语句
(*(x++))++;
//为什么不首先执行x++,然后再进行取值呢??
*(x++) = (*x)++;
与(*x++)++;的区别??? 为什么这样的呢??
请指点,tks!