本文介绍了左值要求作为增量操作数错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

#include <stdio.h>

int main()
{
   int i = 10;
   printf("%d\n", ++(-i)); // <-- Error Here
}

什么是错的 ++( - 我)?请澄清。

推荐答案

-i 生成一个临时的,可以不适用 ++ 上的临时(作为右值前pression的结果而产生)。 pre增量 ++ 要求其操作数是一个左值, -i 不是一个左值,所以你得到的错误。

-i generates a temporary and you can't apply ++ on a temporary(generated as a result of an rvalue expression). Pre increment ++ requires its operand to be an lvalue, -i isn't an lvalue so you get the error.

这篇关于左值要求作为增量操作数错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-09 21:50