亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

搜索
java - 運(yùn)算順序問(wèn)題
大家講道理
大家講道理 2017-04-18 09:27:33
[Java討論組]

java代碼

import javax.swing.*;

public class test12
{
    public static void main(String[] args)
    {
        int a = 3;
        a -= a += a * a;
        System.out.println(a)
    }
}

c++代碼

#include <iostream>

using namespace std;

int main()
{
    int a = 3;
    a -= a += a * a;
    cout << a << endl;
    return 0;
}

為什么兩個(gè)程序打印出的a的值不同,java是-9,c++是0
大家講道理
大家講道理

光陰似箭催人老,日月如移越少年。

全部回復(fù)(2)
黃舟

這個(gè)問(wèn)題和運(yùn)算符沒(méi)有關(guān)系,都是從右往左計(jì)算,而是編譯器對(duì)值類型的處理結(jié)果不一致導(dǎo)致的差異。
對(duì)于gc類語(yǔ)言來(lái)說(shuō),包括(java,c#,php,javascript)等,對(duì)于單句指令的中間運(yùn)算結(jié)果會(huì)進(jìn)行緩存。而C/C++由于直接編譯為匯編指令,沒(méi)有虛擬機(jī)或引擎的支持,所以不會(huì)有這一步。
通俗點(diǎn)來(lái)說(shuō),對(duì)于c++:

a=3*3;//9
a=a+a;//18
a=a-a;//0

也就是說(shuō)a的值是值類型,會(huì)隨時(shí)跟隨a的變化而更新。無(wú)論初始設(shè)置a的值為幾,結(jié)果都是0。(a-a).
然而對(duì)于其他語(yǔ)言,虛擬機(jī)或引擎會(huì)自動(dòng)保存每一步的計(jì)算結(jié)果。

int a=3;
int result=0;
result=a*a;//9
result=a+result;//3+9=12
result=a-result;//3-12=-9

以上。
引申:PHP 一個(gè)詭異的加法算法的研究

PHP中文網(wǎng)

不要糾結(jié)這個(gè),在你感覺(jué)模糊的地方加上()就可以了。

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
關(guān)于我們 免責(zé)申明 意見(jiàn)反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長(zhǎng)!
關(guān)注服務(wù)號(hào) 技術(shù)交流群
PHP中文網(wǎng)訂閱號(hào)
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時(shí)隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號(hào)
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)