<center id="qkqgy"><optgroup id="qkqgy"></optgroup></center>
  • <menu id="qkqgy"></menu>
    <nav id="qkqgy"></nav>
    <xmp id="qkqgy"><nav id="qkqgy"></nav>
  • <xmp id="qkqgy"><menu id="qkqgy"></menu>
    <menu id="qkqgy"><menu id="qkqgy"></menu></menu>
    <tt id="qkqgy"><tt id="qkqgy"></tt></tt>

  • 1. 為什么int類型變量不能直接賦值給char類型變量?
    char a = 97; ?-->a ? //為char類型變量 a 賦值常量值 97。

    char b = ‘a’+3; ? -->d ? // 97+3=100,ASCII對應的字符為 d。

    char c = a+3; ? -->報錯 ?//無法從int類型轉換為char類型,接下來讓我們了解下為什么不能這樣運算:

    * 首先,我們先知道在jvm內存機制中,char類型數據運算是將字符在ASCII表對應的整數以int類型參與運算(可以認為’ a
    '=97),常量(97)與常量(3)運算得到一個新的常量(100),常量賦值給變量(b),不存在強制轉換,只要這個接受變量(b)的類型范圍大于這個常量即可。
    * 而變量聲明時需要定義數據類型(例:char
    a),內存就為這個變量劃分一個char類型大小的空間,其中變量(a)的值是可變的,而常量(3)的值是不變的,兩個運算得到的還是一個變量,本例中(a+3)是int類型的變量,而int類型變量(a+3)賦值給char類型變量(c)需要強制轉換,因此會報錯。
    char c=(char)(a+3); ? -->d

    char+char,char+int——類型均提升為int,附值char變量后,輸出字符編碼表中對應的字符。

    2. 為什么char類型的變量可以賦值為整型數字?

    * char在java中是unicode編碼,Java中對char型數據,在內存中存的就是整數,對應一張ASCII碼表 ,比如說字符知 ‘A’
    對應的是65,字符 ‘a’ 對應的是97 ,所以char c1 = ‘A’ ; 等效于 char c1 = 65 ;
    * 正是因為這樣,所以字符型數據既可以作為一個字符使用,也可以作為一個整數使用,所以char型數據可以和int型數據進行運算!
    比如 ‘A’ + 1 的結果如果用char型變量接收就是 ‘B’ , 用int型變量接收就是66
    char c = ‘A’+1; 最后c為’B’
    int i = ‘A’ + 1 ; 最后i為 66
    雖然char型是以整數存儲,但是和int型還是有一定區別的,表現在取值范圍上,
    char型 占2個字節 無符號 范圍是0~65535

    所以char c = 65536 就會報錯了,因為越界了

    技術
    下載桌面版
    GitHub
    百度網盤(提取碼:draw)
    Gitee
    云服務器優惠
    阿里云優惠券
    騰訊云優惠券
    華為云優惠券
    站點信息
    問題反饋
    郵箱:ixiaoyang8@qq.com
    QQ群:766591547
    關注微信
    巨胸美乳无码人妻视频