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:if test="${not empty dataValue}">
fm.SAMPLING_DATE.value=" <c:out value='${dataValue.SAMPLING_DATE}'/ ......
#include <string.h>
#include <stdio.h>
void main()
{
int i;
char buf[]="abcde";
strncpy(buf,"abc",3);
for(i=0;i <5;i++)
printf(&q ......
在ue中从远程unix用二进制方式下载c文件到本地,修改之后用二进制方式上传到unix中,再用vi打开该文件,每行后面就会有一个^M的换行符,如果采用ascii方式下载,二进制方式上传的话就没有^M,那请问这样会对程序文件 ......
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;
......