void func(int* n)
{
//cout << (*n--);
while ((*n)--);
printf("%d", ++(*n));
}
int main()
{
int a = 10;
func(&a);
system("pause");
}
为什么输出结果为0?这个和前置++后置++,运算符优先级有关吗?
void func(int* n)
{
//cout << (*n--);
while ((*n)--);
printf("%d", ++(*n));
}
int main()
{
int a = 10;
func(&a);
system("pause");
}
为什么输出结果为0?这个和前置++后置++,运算符优先级有关吗?
有关
前置++ 先执行+1 可以说优先级比较高 后置++ 等一句话执行完 最后加一
--也一样
while 先判断*n 是否为0 是的话跳出循环 然后减一 (后置--) 不是的话也减一
跳出循环以后其值为-1 输出的时候前置++ 先加一后输出 所以得0
关键是分清 前置 和 后置的 区别