深入理解int a[5];
生活随笔
收集整理的這篇文章主要介紹了
深入理解int a[5];
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
深入理解int a[5];
1)定義了一個數(shù)組,其包含了5 個int 型的數(shù)據(jù)。我們可以用a[0],a[1]等來訪問數(shù)組里面的每一個元素。
2)當我們定義一個數(shù)組a 時,編譯器根據(jù)指定的元素個數(shù)和元素的類型分配確定大小(元素類型大小*元素個數(shù))的一塊內(nèi)存,并把這塊內(nèi)存的名字命名為a。名字a 一旦與這塊內(nèi)存匹配就不能被改變。
3)a[0],a[1]等為a 的元素,但并非元素的名字。數(shù)組的每一個元素都是沒有名字的。
4)sizeof(a)的值為sizeof(int)*5,32 位系統(tǒng)下為20。?
? ?sizeof(a[0])的值為sizeof(int),32 位系統(tǒng)下為4。
5)sizeof(a[5])的值在32 位系統(tǒng)下為4。并沒有出錯,為什么呢?我們講過sizeof 是關(guān)鍵字,而不是函數(shù)。函數(shù)求值是在運行的時候,而關(guān)鍵字sizeof 求值是在編譯的時候。雖然并不存在a[5]這個元素,但是這里也并沒有去真正訪問a[5],而是僅僅根據(jù)數(shù)組元素的類型來確定其值。所以這里使用a[5]并不會出錯。
6)sizeof(&a[0])的值在32 位系下為4,取元素a[0]的首地址。?
7)sizeof(&a)的值在32 位系統(tǒng)下也為4,取數(shù)組a 的首地址。
1)定義了一個數(shù)組,其包含了5 個int 型的數(shù)據(jù)。我們可以用a[0],a[1]等來訪問數(shù)組里面的每一個元素。
2)當我們定義一個數(shù)組a 時,編譯器根據(jù)指定的元素個數(shù)和元素的類型分配確定大小(元素類型大小*元素個數(shù))的一塊內(nèi)存,并把這塊內(nèi)存的名字命名為a。名字a 一旦與這塊內(nèi)存匹配就不能被改變。
3)a[0],a[1]等為a 的元素,但并非元素的名字。數(shù)組的每一個元素都是沒有名字的。
4)sizeof(a)的值為sizeof(int)*5,32 位系統(tǒng)下為20。?
? ?sizeof(a[0])的值為sizeof(int),32 位系統(tǒng)下為4。
5)sizeof(a[5])的值在32 位系統(tǒng)下為4。并沒有出錯,為什么呢?我們講過sizeof 是關(guān)鍵字,而不是函數(shù)。函數(shù)求值是在運行的時候,而關(guān)鍵字sizeof 求值是在編譯的時候。雖然并不存在a[5]這個元素,但是這里也并沒有去真正訪問a[5],而是僅僅根據(jù)數(shù)組元素的類型來確定其值。所以這里使用a[5]并不會出錯。
6)sizeof(&a[0])的值在32 位系下為4,取元素a[0]的首地址。?
7)sizeof(&a)的值在32 位系統(tǒng)下也為4,取數(shù)組a 的首地址。
總結(jié)
以上是生活随笔為你收集整理的深入理解int a[5];的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: union与struct的区别?
- 下一篇: 以指针的形式和以下标的形式访问指针?以指