《C和指针》关于++操作符的描述,该如何解决
《C和指针》关于++操作符的描述
原书内容:
抽象地说,前缀和后缀形式的增值操作符都是复制一份变量的拷贝,用于周围表达式的值正是这份拷贝。前缀操作符在进行复制之前增加变量的值,后缀操作符在进行复制之后才增加变量的值,这些操作符结果不是被它们所修改的变量,而是变量值的拷贝,认识这一点非常重要。它之所以重要是因为它解释了你为什么不能像下面这样使用这些操作符:
++a = 10;
++a的结果是a值的拷贝,并不是变量本身,你无法向一个值进行赋值。
但是经过测试,发现++a = 10这语句是没有错的,而且结果也正确,但是a++ = 10就无法通过编译……
------解决方案--------------------
楼主用的.cpp文件吧?
用.c文件测试
------解决方案--------------------
不要用C++去验证C中的++a,因为在C++中前增量的结果是左值,但C中是右值。
------解决方案--------------------
------解决方案--------------------
原书内容:
抽象地说,前缀和后缀形式的增值操作符都是复制一份变量的拷贝,用于周围表达式的值正是这份拷贝。前缀操作符在进行复制之前增加变量的值,后缀操作符在进行复制之后才增加变量的值,这些操作符结果不是被它们所修改的变量,而是变量值的拷贝,认识这一点非常重要。它之所以重要是因为它解释了你为什么不能像下面这样使用这些操作符:
++a = 10;
++a的结果是a值的拷贝,并不是变量本身,你无法向一个值进行赋值。
但是经过测试,发现++a = 10这语句是没有错的,而且结果也正确,但是a++ = 10就无法通过编译……
------解决方案--------------------
楼主用的.cpp文件吧?
用.c文件测试
------解决方案--------------------
不要用C++去验证C中的++a,因为在C++中前增量的结果是左值,但C中是右值。
------解决方案--------------------
------解决方案--------------------