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,但是对于+操作符,标准未规定先计算左操作数还是右操作数,所以具体结果得看编译器怎么实现,所以结果未定义,这种写法应避免。
相关问答:
编译普通的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不能调用?
VB里为什么有的DLL直接通过引用可以使用?有的需要通过declare申明外部函数?这些DLL有什么差别?
1、为什么PB能通过DECLARE声明而VB不行?
2、如果这个dll中的 ......
#include <stdio.h>
#include <graphics.h>
void main()
{
int x0,y0,x1,y1,driver,mode,i;
driver=VGA;
mode=VGAHI;
initgraph(&driver,&mode,&qu ......
问一下:
#include <stdio.h>
int main()
{
char x, y, z;
int i;
int a[16];
for(i=0; i<=16; i++)
{
a[i] = 0;
......
最近突然想自己来实现一个五子棋程序,但不知道怎么开始,自己也没学画图形函数,能在控制台下直接写吗>>>?????
控制台?比图形界面更麻烦。
http://search.download.csdn.net/search/%E4%BA%94%E5%AD%90% ......