黑馬程式設計師 IOS基礎第八天(C語言)

2021-07-03 19:58:24 字數 3251 閱讀 8067



改變整形變數所佔儲存空間

short2

位元組%hd

int4

位元組%d %i

long8

位元組%ld

long long8

位元組%lld

(主要為了解決

32位機器問題)

char

型別常量的儲存問題

sizeof

(『a』

) ---

à先找到

『a』的

ascii

碼值97

---à把

97安裝

int型別進行

----

à把四個位元組儲存到記憶體中

ch=』a』;

---à97

---à把

97轉化為2進製

01100001

乙個位元組

----

à把乙個位元組儲存到記憶體中

總結:char

型別的常量和變數的儲存方式是不一樣的

乙個位元組的範圍:

0-127

用作常見的字元的

ascii碼

陣列的基本概念:把具有相同型別的若干變數按有序的形式組織起來。這些排序排列的同類資料元素的集合稱為陣列。

陣列的幾個名詞:

陣列:一組具有相同資料型別的資料有序的集合

陣列元素:構成陣列的資料

陣列的下標:是陣列元素的位置的乙個索引或指示

陣列的維度:陣列新元素下標的個數,可分為一維,二維,三維,多維

陣列按儲存的內容分類:

數值陣列:儲存數值的

字元陣列:用來存放字元

』a』

指標陣列:用來存放指標(位址)的

結構陣列:用來存放乙個結構體型別的資料

按維度分類:

一維陣列

二維陣列

多維陣列

7. 一維陣列:如果乙個陣列的所有元素都不是陣列,那麼該陣列稱為一維陣列

定義---

初始化---

初始化---使用1

)一維陣列的定義方式:

型別說明符

陣列名[

常量表示式];

2)定義注意事項:

a 陣列的長度可以是乙個常量,也可以是常量表示式

[3+3]

b 陣列名的命名規則:嚴格按照識別符號的命名規範

c 陣列名不能和其他變數同名

d 陣列的長度不可以為乙個變數

e 陣列的長度可以使用

巨集定義f

定義陣列的時候,還可以定義普通變數。

int x,y

,a7[4];

3)一維陣列的初始化:

初始化:陣列初始化賦值是指在陣列定義時給陣列元素賦予初值。

定義的同時進行初始化

常見形式:

型別說明符

陣列名[

常量表示式

]=定義的同時完全初始化

int a[3]=;

int a[ ]=;//

陣列個數為大括號裡賦值的個數

定義的同時進行部分初始化

int a2[3]=

;int a[10]=;//

下標為3

的值為23

,下標為

8的值為

35先定義陣列,然後再初始化

int a5[4]; a5[0]=1;//

給陣列第乙個元素賦值124

)注意:如果陣列沒有初始化,這時候陣列的元素是有值的,值不確定

如果進行了部分初始化,這時候初始化那部分元素自動初始化為05

)一維陣列的引用(訪問):陣列名[下標

]就可以訪問陣列的元素

陣列元素訪問一般形式:

陣列名[下標]

下標:陣列元素的編號,陣列的編號從

0開始;乙個長度為

n的陣列,下標範圍:

0~n-1

如果要逐個訪問陣列的元素的話,這就叫陣列的遍歷、

for(

int i=0

;i<3;i++)

6)一維陣列的儲存方式:

a 計算機會給陣列分配一塊連續的儲存空間

b 陣列名代表陣列的首位址,從首位址位置,一次存入陣列的第乙個,第二個、、、、第

n個元素

c 每個元素占用相同的位元組數(取決於陣列型別)

d 並且元素之間的位址是連續的 7

)a 陣列內部的元素位址是連續的,先定義的陣列分配在高位址

b 陣列名存放的是陣列的首位址,等於陣列的第乙個元素的位址 c

陣列名是乙個常量,儲存的就是陣列的首位址

d chars +sizeof(char)*下標8

)一維陣列長度計算的方法:

a 陣列在記憶體中占用的位元組數:儲存個數

*sizeof

(資料型別)

求陣列的總位元組數:

sizeof

(陣列名):

sizeof(a

);b

陣列的長度

=陣列占用的總位元組數

/陣列元素占用的位元組數

陣列元素作為函式引數:

陣列元素作函式實參:陣列元素就是下標變數,它與普通變數並無區別。在發生函式調動時,把作為實參的陣列元素的值傳送給形參,實現單向的值傳遞。

陣列用作函式引數的形式有兩種:

a 一種是把元素(下標變數)用作實參使用

b

一種是把陣列名作為函式的形參和實參使用

陣列名作為函式引數:

用陣列名作為函式引數與陣列元素作實參有幾點不同

用陣列元素作函式引數不要求形參也必須是陣列元素,但是用陣列名作函式引數時,則要求形參和實參都必須是同型別陣列

陣列名作為函式引數時,是位址傳遞,不是值傳遞。與形參記憶體空間相同

在變數作函式引數時,所進行的值穿釘是單向的。即只能從實參傳向形參,不能從形參傳回實參。形參的初值和實參相同,而形參的值發生變化後,實參並不變化,兩者的終值是不同的

注意點:

a形引數組和實參陣列的型別和長度必須一致,否則將引起錯誤、

b 形引數組的長度可以不寫

c 多維陣列可以作為函式的引數。在函式定義時對形引數組可以指定每一維的長度,也可省去第一維的長度,因此,以下寫法是合法的:

int ma

(int[3][10]

)或int ma

(a[10]

) d

所有位址,都是

8個位元組。所以,陣列名作為函式引數後,陣列的長度資訊會丟失

程式設計師養成記(第八天)

輸入任意數的乘法口訣表 define crt secure no warnings include include include include int multiplication int n printf n int main 用指標交換兩個整形變數 define crt secure no ...

android基礎 第八天

可航訓練營 為幫助大家更好的 系統性的學習 android 一 有序廣播和無序廣播 密碼 2dea 二 有序廣播指明廣播接收者 密碼 qqmg 三 廣播 許可權的應用 密碼 wfcm 四 優先順序相同情況下,廣播接收者的順序 密碼 4vb2 五 廣播接收者生命週期 密碼 bx54 六 廣播練習 密碼...

學習iOS的第八天

今天主要是講了復合,依賴,class關鍵字 還有學了 氣泡排序 氣泡排序應該很重要,老師講了乙個下午 這是我自己做的 import int main int argc,const char argv int len sizeof a sizeof 0 int i,j 控制變數 int n for i...