精品偷拍一区二区三区,亚洲精品永久 码,亚洲综合日韩精品欧美国产,亚洲国产日韩a在线亚洲

  • <center id="usuqs"></center>
  • 
    
  • c++二維數(shù)組問題3.已知int a[3][2]={3,2,1}; 則表達(dá)式“a[0][0]/a[0][1]/a[0][2]”的值是1,

    c++二維數(shù)組問題3.已知int a[3][2]={3,2,1}; 則表達(dá)式“a[0][0]/a[0][1]/a[0][2]”的值是1,
    a[0][2]不是已經(jīng)超出數(shù)組范圍了嗎,答案1是怎么算得,
    其他人氣:897 ℃時間:2020-09-11 08:40:34
    優(yōu)質(zhì)解答
    二維數(shù)組的實(shí)際上在內(nèi)存里存儲格式是一維的
    也就是a [3][2]
    占用了 3*2 個int 類型數(shù)據(jù)的 連續(xù)內(nèi)存空間
    排放的模式是:
    a[0][0] ,a[0][1], a[1][0],a[1][1],a[2][0],a[2][1]
    為了表示方便,我打了空格分開了,其實(shí)是連續(xù)存儲的,只是邏輯上認(rèn)為是二維的而已.
    那么考慮初始化的問題,int a[3][2]={3,2,1}; 分別賦值給了a[0][0] ,a[0][1], a[1][0]
    現(xiàn)在考慮 a[0][2]到底是什么
    a[0][2]其實(shí)被編譯器解釋為 *( (*a+0 ) + 2) ,a是數(shù)組首地址,
    在C/C++編譯器里,數(shù)組越界是不檢查的,再考慮上面的存儲格式
    也就是說 ,*( (*a+0 ) + 2) 這個值應(yīng)該是指向了*( (*a+0 ) + 1) =a[0][1] 隔壁的家伙
    現(xiàn)在你知道是誰了吧,a[1][0]
    所以a[0][2]就是a[1][0]=1;
    后面的簡單算術(shù)問題我就不解釋了.
    PS,不完全初始化話,沒有賦值的元素都會被編譯器弄成0.
    樓上不少人的解釋都不涉及計算機(jī)本身,怎么也不會答到點(diǎn)子上的.
    我來回答
    類似推薦
    請使用1024x768 IE6.0或更高版本瀏覽器瀏覽本站點(diǎn),以保證最佳閱讀效果。本頁提供作業(yè)小助手,一起搜作業(yè)以及作業(yè)好幫手最新版!
    版權(quán)所有 CopyRight © 2012-2024 作業(yè)小助手 All Rights Reserved. 手機(jī)版