課程:陣列
陣列在c中屬於構造型別,構造型別即有n個基本資料型別所組成的一種型別。
陣列名的含義永遠是乙個位址值。
sizwof(陣列名)返回陣列所佔的總位元組數,總位元組數是指當前每個元素所佔記憶體空間的大小再x元素個數,除以相應的型別位元組數,即可得到陣列的長度,即儲存了多少個元素。
在c中,陣列的下標可以不定義為int型,例如array['a']=array[97],在c中是合法的。
在定義陣列的同時初始化陣列,下標必須是常量值(或常量表示式),如果只是宣告陣列,則下標可以是變數。(為什麼?)
c是面向過程的語言,不存在物件導向中」物件.方法()「的呼叫型別。
對於陣列在記憶體中的儲存,最高位址儲存的是最後乙個陣列元素,最低位址儲存的是第乙個陣列元素,與普通變數的值儲存順序相反。
而陣列的位址是陣列名,指向第乙個陣列元素儲存的位元組(塊),即該陣列所在記憶體空間中最末乙個位元組(塊)位址,因此,對陣列指標進行加1操作,可以由低至高進行陣列遍歷,而不是-1。
乙個陣列的陣列名,即是這個陣列的首元素的位址,即陣列名的值是乙個位址值,指向的是手[0]元素,既然值是位址那麼傳遞給指標是就不再需要&取位址符了(但是使用&符仍然是得到首元素的位址,而不是存放這個位址值的記憶體的位址?),但是陣列名是位址常量,不能進行++,--操作,因此才需要定義陣列指標驚喜操作。
若將陣列作為函式的引數,可以省略陣列個數,即function(int a)或寫function(int ×a),不論括號中如何寫,傳遞給形參的都是乙個位址值,即引數實際都是乙個指標。
在函式中作為實參進行傳遞,那麼函式本身會占用乙個記憶體池空間開闢同樣的乙個形參空間存放形參的陣列嗎???????
基本型別是數值傳遞,而陣列(構造型別)是位址傳遞。
俄羅斯方塊和五子棋,都應用到了二維陣列。將俄羅斯方塊和五子棋呈現出來的畫面看成乙個靜態的二維陣列,即由行列組成,改變行列中所對應陣列的值,即改變了遊戲所呈現出來的畫面。
Python基礎課程筆記(一)
1 python www.python.org 2 print hello python print hello python 3 布林值 and,or,not 4 字串 都行。print 100 200 100 200 5 python注釋是 6 如果乙個字串包含很多需要轉義的字元,對每個字元都要...
侯捷老師C 基礎課程筆記1 2
基於物件 object based 與物件導向 object oriented 的區別 通常 基於物件 使用物件,但無法利用現有的物件模版產生新的物件型別,繼而產生新的物件。即 基於物件 只有封裝,沒有繼承和多型的特點。物件導向 具有 封裝 繼承 多型 三大特點,缺一不可。版本c 98 是c 1.0...
慕課網《HTML CSS基礎課程》筆記總結(五)
每一條css樣式宣告 定義 由兩部分組成,形式如下 選擇器 在 之前的部分就是 選擇器 選擇器 指明了 中的 樣式 的作用物件,也就是 樣式 作用於網頁中的哪些元素。比如右側 編輯器中第7行 中的 body 就是選擇器。p 上面的css樣式 的作用 為p標籤設定12px字型大小,行間距設定1.6em...