c语言不规则窗口,C语言不规则数组和指针
不規(guī)則數(shù)組是每一行的列數(shù)不一樣的二維數(shù)組,其原理如下圖所示,圖中的數(shù)組有3行,每行有不同的列數(shù)。
在了解如何創(chuàng)建不規(guī)則數(shù)組之前,讓我們先看一下用復(fù)合字面量創(chuàng)建的二維數(shù)組。復(fù)合字面量是一種C構(gòu)造,前面看起來像類型轉(zhuǎn)換操作,后面跟著花括號(hào)括起來的初始化列表。下面是整數(shù)常量和整數(shù)數(shù)組的例子,我們將其作為聲明的一部分:
下面的聲明把數(shù)組聲明為整數(shù)指針的數(shù)組,然后用復(fù)合字面量語(yǔ)句塊進(jìn)行初始化,由此創(chuàng)建了數(shù)組arr1。
這個(gè)數(shù)組有3行3列,將數(shù)組元素用數(shù)字0到8按行–列順序初始化。下圖說明了數(shù)組的內(nèi)存布局。
下面的代碼片段打印每個(gè)數(shù)組元素的地址和值:
執(zhí)行后會(huì)得到如下輸出:
稍微修改一下聲明就可以得到一個(gè)不規(guī)則數(shù)組,就是圖4-18中展示的那個(gè)。數(shù)組聲明如下:
我們用了3個(gè)復(fù)合字面量聲明不規(guī)則數(shù)組,然后從0開始按行–列順序初始化數(shù)組元素。下面的代碼片段會(huì)打印數(shù)組來驗(yàn)證創(chuàng)建是否正確,因?yàn)槊啃械牧袛?shù)不同,所以需要3個(gè)for循環(huán):
輸出如下:
下圖說明了這個(gè)數(shù)組的內(nèi)存布局。
在這些例子中,我們?cè)L問數(shù)組內(nèi)容時(shí)用的是數(shù)組表示法而不是指針表示法,這樣更易讀,也好理解。不過,也可以用指針表示法。
復(fù)合字面量在創(chuàng)建不規(guī)則數(shù)組時(shí)很有用,不過訪問不規(guī)則數(shù)組的元素比較別扭,上面的例子就用了3個(gè)for循環(huán)。如果有一個(gè)單獨(dú)的數(shù)組來維護(hù)每行的長(zhǎng)度,那么這個(gè)例子就可以簡(jiǎn)化。你可以在C中創(chuàng)建不規(guī)則數(shù)組,不過要考慮好它能起的作用是否值得花費(fèi)相應(yīng)的精力。
總結(jié)
以上是生活随笔為你收集整理的c语言不规则窗口,C语言不规则数组和指针的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux超级工具,linux运维超级工
- 下一篇: C语言循环为1404的循环,考试,求大神