易截截图软件、单文件、免安装、纯绿色、仅160KB

C/C++

C/C++ code:

#include <iostream.h>
void main()
{
int a=1,b=2;
cout<<(a++)+b<<'\t'<<a+++b<<endl;
cout<<a<<'\t'<<b<<endl;
}


结果
4  3
3  2
怎么分析?后面+++怎么结合啊,是+和++,还是++和+呢?
++和+

LZ 无聊

这和编译器有关

又是这种问题。。

根据最长识别原则,是++和+

同意楼上:
根据最长识别原则,是++和+




引用
根据最长识别原则,是++和+


对的。

建议楼主看下 《C陷阱与缺陷》,里面讲到这个问题了。并且是本很好的书,可以下电子版的。

按照贪心原则,编译器一个一个读字符并试图解释。a+++b被解释成a++ + b。
如果是a+++++b,因为(a++)返回的是个临时变量,不可用作左值,那么((a++)++)+b就不对,所以只能a++ + ++b。
如果是a+++++a,那么就是a++ + ++a,但是对于+操作符,标准未规定先计算左操作数还是右操作数,所以具体结果得看编译器怎么实现,所以结果未定义,这种写法应避免。


相关问答:

eclipse3.5+cdt编译c有问题

编译普通的c没问题啊,但编译javah生成的就报错:
gcc -O0 -g3 -Wall -c -fmessage-length=0 -oHelloWorld.o ..\HelloWorld.c
gcc -otest.exe HelloWorld.o
d:/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../. ......

为什么C写DLL文件C、PB能调用VB不能调用

为什么C写的DLL文件C、PB能调用VB不能调用?
VB里为什么有的DLL直接通过引用可以使用?有的需要通过declare申明外部函数?这些DLL有什么差别?

1、为什么PB能通过DECLARE声明而VB不行?
2、如果这个dll中的 ......

菜鸟求解:c图形问题

#include <stdio.h>
#include <graphics.h>
void main()
{
  int x0,y0,x1,y1,driver,mode,i;
  driver=VGA;
  mode=VGAHI;
  initgraph(&driver,&mode,&qu ......

C 程序问题 (二) - C/C++ / C语言

问一下:
#include <stdio.h>
int main()
{
  char x, y, z;
  int i;
  int a[16];
  for(i=0; i<=16; i++)
  {
  a[i] = 0;
  ......

能用C/C++简单实现五子棋程序吗?

最近突然想自己来实现一个五子棋程序,但不知道怎么开始,自己也没学画图形函数,能在控制台下直接写吗>>>?????
控制台?比图形界面更麻烦。
http://search.download.csdn.net/search/%E4%BA%94%E5%AD%90% ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号