c語言數(shù)組首地址是什么 數(shù)組首地址的問題?
數(shù)組首地址的問題?如果a是一維數(shù)組名,我們知道*a是a[0],即*(arr 0)。因?yàn)閍是數(shù)組的第一個(gè)地址,*a是第一個(gè)地址引用的元素,這是數(shù)組的第一個(gè)元素。同樣,當(dāng)a是二維數(shù)組名時(shí),*a也取a的第一
數(shù)組首地址的問題?
如果a是一維數(shù)組名,我們知道*a是a[0],即*(arr 0)。因?yàn)閍是數(shù)組的第一個(gè)地址,*a是第一個(gè)地址引用的元素,這是數(shù)組的第一個(gè)元素。同樣,當(dāng)a是二維數(shù)組名時(shí),*a也取a的第一個(gè)元素,但此時(shí)a引用的元素是一維數(shù)組,所以實(shí)際上a引用的元素是一維數(shù)組的第一個(gè)地址。二維數(shù)組a,a是數(shù)組地址,指向行;有一個(gè)等價(jià)關(guān)系a[i]=*(a i)a[i]指向列,而&A[i]指向行。你可以把*和&看作是相反的:a指向一行,*(ai)指向一列,*(*(a I)j)根據(jù)a[3][4]的例子,相當(dāng)于a[I][j]:三行四列數(shù)組a可以理解為由三個(gè)一維數(shù)組a[0][0]a[0][1]a[0][2]a[0][3]//第一行a[0][0]a[1][0]a[1][1]a[1][2]a[1][3]//第二行a[1][0]a[2]構(gòu)成的二維數(shù)組[0]a[2][2]a[2][3]//第三行a[2][(數(shù)組包含四個(gè)元素),*a是a[0],a[0]是第一行地址,是第一個(gè)數(shù)組的第一個(gè)地址。*(ai)是a[I],它是第I行的第一個(gè)地址。如果將a定義為字符數(shù)組,將*a(即第一行的第一個(gè)地址)輸出到0000,然后將*(a1)輸出到0004而不是0001,則可以說a是指向一維數(shù)組的指針。
C語言中數(shù)組arr和 &arr對應(yīng)的地址為什么一樣?
這對我來說太難了!然而,我們發(fā)現(xiàn)指針可能不容易理解。例如,long a=1和int a=1的值是相同的。amparr的函數(shù)有點(diǎn)像long to int。ARR address是整個(gè)數(shù)組的地址&;ARR是第一個(gè)數(shù)字的地址。兩者雖然價(jià)值相同,但意義不同。操作arr和&;arr的結(jié)果也不同。
希望對您有所幫助!