目錄
2. 陣列
1.1 概念:
2.3 理解&a【0】和&【a】的區別
2.3.1. 我們先來看步長
2.3.2. 為什么要講步長,所以就來到了開始的問題,陣列地址和其首元素地址的區別
2.4. 陣列名a做為左值和右值的區別
本章節文章是作者通過觀看《C語言深度剖析》等各種資料總結的精華,基礎部分省略了不少,是為了讓大家能夠更加深入了解C語言的魅力!因為為了避免與之前的文章發生贅述,所以就直接講作者認為的精華部分哈!現在正文開始!
誰都不能阻擋你成為更優秀的人,
2. 陣列
1.1 概念:
陣列是具有相同資料型別的集合,
#define N 10int a [ N ] = { 0 }; // 定義并初始化陣列
[0]先入堆疊[0]的地址最大?其實我們之前說過的陣列在堆疊中的布局也是[0]最小然后遞增的,
在開辟空間的角度,不應該把陣列認為成一個個獨立的元素,應該整體開辟空間,整體釋放,
2.3 理解&a【0】和&【a】的區別
2.3.1. 我們先來看步長
對指標+1,其實是加上其指向型別的大小,默認看自身型別,有強轉看強轉型別,

一級指標指向的目標會有很多種(char,short等)所以+(-)1的步長也會有很多種,

但是從二級指標開始,指向的內容就是指標了,所以步長就確定了,
32位平臺下是4位元組,64平臺下是8位元組!
2.3.2. 為什么要講步長,所以就來到了開始的問題,陣列地址和其首元素地址的區別

上面的加一可以說是指向下一個元素,下面的加一可以說是指向下一個陣列,
&arr[0] 和 &arr雖然地址數字一樣大,但是型別意義完全不同,
因為首元素地址和陣列的地址,在地址對應的位元組是重疊的!所以地址資料值相等,
2.4. 陣列名a做為左值和右值的區別
陣列名可以做右值,代表陣列首元素的地址陣列名做右值,本質等價于 &arr[0]

這個有報錯,q是陣列指標,后面講,
今天的內容就到這里了哈!!!
真不是作者今天偷懶了只講這么一點哈!
只是作者覺得先把指標和陣列單獨講,然后合著講會好一點,
下一期就開始合著講了哈!
要是認為作者有一點幫助你的話!
就來一個點贊加關注吧!!!當然訂閱是更是求之不得!
最后的最后謝謝大家的觀看!!!
你們的支持是作者寫作的最大動力!!!
下期見哈!!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/387952.html
標籤:其他
上一篇:shell編程
下一篇:最長無重復字串
