乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      (todo)數(shù)組名 有存儲(chǔ)空間嗎?

       lchjczw 2012-11-23
      對(duì)于數(shù)組b[],b是數(shù)組的地址,但b不算變量,有沒(méi)有一個(gè)地方存放b?而且b是不  
      是存放的就是自己所在的地址。  
      -------------------------------------------------------------  
      數(shù)組名不是對(duì)象,數(shù)組才是對(duì)象,指針也是一種對(duì)象,因此,數(shù)組名并沒(méi)有內(nèi)存空間,它是一個(gè)右值。想看具體的代碼么?把下面的代碼匯編一下,就可以看見(jiàn)其區(qū)別了:  

      char   a[10];  
      char   *p;  
      p=a;  
      a[2]=10;  
      p[2]=20;  

      編譯器編譯后的匯編代碼是這樣的:  

      _main proc near  
      push bp  
      mov bp,sp  
      sub sp,10  
      push si  
      lea si,word   ptr   [bp-10]     ;這個(gè)就是p=a,p被保存在某個(gè)地方,這里p被優(yōu)化為保存在寄存器 
       
      mov byte   ptr   [bp-8],10       ;這個(gè)是a[2]=10a是直接堆棧操作,因?yàn)樗且粋€(gè)地址,沒(méi)有存儲(chǔ)空間 
       
      mov byte   ptr   [si+2],20       ;這個(gè)是p[2]=20,p是個(gè)變量,它被保存在寄存器si里面,因此進(jìn)行操作時(shí),要先取si的值,然后+2,再進(jìn)行間接尋址 
       
      xor ax,ax  
      jmp short   @1  

      如果數(shù)組名是一個(gè)變量的話,那就必定得先把bp-10保存在某個(gè)地方,例如di,就會(huì)產(chǎn)生下面的指令:lea   di,   word   ptr[bp-10],事實(shí)是,編譯器并沒(méi)有這樣做,而是直接堆棧操作。  


      char   *a[2];  
      那么a的值和&a的值是不是應(yīng)該一樣?  
      -----------------------------------  
      關(guān)于對(duì)數(shù)組名取地址的問(wèn)題,由于數(shù)組名是右值,本來(lái)&a是不合法的,早期不少編譯器就是指定&a是非法的,但后來(lái)C89/C99認(rèn)為數(shù)組符合對(duì)象的語(yǔ)義,對(duì)一個(gè)對(duì)象取地址是合理的,因此,從維護(hù)對(duì)象的完整性出發(fā),也允許&a,只不過(guò),&a的意義,并非對(duì)一個(gè)數(shù)組名取地址,而是對(duì)一個(gè)數(shù)組對(duì)象取地址,也正因?yàn)槿绱耍?/span>a才跟&a所代表的地址值一樣,同時(shí)sizeof(a)應(yīng)該跟sizeof(&a)一樣,因?yàn)?/span>sizeof(&a)代表取一個(gè)數(shù)組對(duì)象的長(zhǎng)度。

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多