第九章 再論陣列

2021-08-30 15:04:48 字數 820 閱讀 2310

1,char s和char* s等價的情況:作為函式定義的形式引數(僅限於這種情況).

例項:

#include

int main()

2,對陣列的引用如a[i]在編譯時,總是被編譯改寫成*(a+i)的形式.

在表示式中,指標和陣列是可以互換的,因為他們在編譯器那裡的最終形式都是指標,並且都可以進行下標操作.

3,標準規定"型別的陣列"的形參的宣告應該調整為"型別的指標".

在函式形參定義這個特殊情況下,編譯器必須把陣列形式改寫成指向陣列第乙個元素的指標形式.編譯器只傳遞陣列的位址,而不是整個陣列的拷貝.

隱性轉換意味著下面三種形式是完全等同的:

func(int* s){}

func(int s){}

func(int s[100]){}

4,把作為形參的陣列和指標等同起來是出於效率原因的考慮.

可以這麼理解:c語言在預設情況下,陣列和函式是傳址呼叫,其他引數是傳值呼叫.

當然資料也可以用傳址呼叫,加上&即可.

因此:沒有辦法把陣列本身傳遞給乙個函式,因為它總是被自動轉換為指向陣列的指標.

5,可以通過向函式傳遞乙個指向陣列第乙個元素的指標來訪問整個陣列,也可以讓指標指向任何乙個元素,這樣傳遞給函式的就是從該元素之後的陣列片段.

6,可以這樣初始化二維字串陣列:

char* name=;

但是初始化int型二維陣列,只能這麼做:

int row1=;

int row2=;

int row3=;

int* num=;

第九章 函式再探

函式的記憶體位址儲存了函式開始執行的位置,儲存在函式指標中的內容就是這個指標 9.1.1 宣告函式指標int pfunction int 函式指標變數的宣告,不指向任何內容,該語句只定義了指標變數。這個指標的名稱是pfunction,指向乙個引數是int型別 返回值是int型別的函式。這個指標只能指...

第九章(筆記)

轉移指令是可以修改ip,或同時修改cs和ip的指令 offset 是用於提取標號偏移位址的操作符 jmp在第2章裡說到時用於修改ip或同時修改cs和ip的轉移指令,這章裡單獨的jmp指令是乙個無條件的轉移指令 jmp short 標號 是實現段內短轉移 jmp near ptr 標號 是實現段內近轉...

第九章作業

班級 0401304 學號 2013211526 姓名 鄧小俊 2.身份驗證 依據使用者所提供的身份資訊,來進行登入驗證,可以再細分為使用者是否可以登入sql sever 使用者是否可以登入到指定的目標資料庫等。授權 已通過身份驗證的使用者,檢查其所被賦予的許可權,是否可以訪問或者執行目標的物件 3...