C語言入門筆記 第十一講 初識函式執行過程

2021-10-17 10:28:45 字數 867 閱讀 7363

執行程式時,

記憶體會申請一片空間,

大概能劃分成三個區域:

區域性變數

函式形參

動態開闢的記憶體

如malloc,calloc

全域性變數

static修飾的變數

以下述**為例:

int add(int x, int y)

int main()

我們把棧區放大:

首先,棧區的底部分配一塊空間給main,

然後在main區域裡,從底到上,依次為區域性變數a,b,ret分配空間,如下圖:

第二步,我們要進行add函式的呼叫,需要傳參。

add(a,b)

在絕大部分編譯器裡,會先傳b,再傳a,從右向左傳。

在main函式區域上面,分配兩塊空間,分別給b`和a`。

實際上,

b`就是y,

a`就是x。

第三步,我們再分配一塊空間給add函式,

再底部分配一塊空間給z,

然後將x,y的結果相加,放進z裡。

C 銳利體驗 第十一講 陣列

第十一講 陣列 陣列 陣列是程式設計常用的一種資料結構。和c c 一樣,c 中的陣列索引從0開始,且其元素型別必須為相同,當然由於多型等帶來的隱式轉型則另當別論。c 中的陣列可以分為一維陣列,多維陣列以及參差陣列 ragged array 它們各自的宣告,初始化,以及元素索引都有不同語法規定。c 同...

C語言也能幹大事 第十一講 Socket網路程式設計

網路程式設計 計算機與計算機之間的通訊。網域名稱 ip位址 dns伺服器。手機聯絡人 號碼 乙個計算機可以同時執行多個網路程式,引入了埠port 與就是乙個計算機上可以併發執行多個網路程式,而不會再互相之間產生干擾 c s b s結構。p2p程式 即時客戶端,優勢伺服器端。tcp傳輸控制協議 udp...

C大事 第十一講 Socket網路程式設計

網路程式設計 計算機與計算機之間的通訊。網域名稱 ip位址 dns伺服器。手機聯絡人 號碼 乙個計算機可以同時執行多個網路程式,引入了埠port 與就是乙個計算機上可以併發執行多個網路程式,而不會再互相之間產生干擾 c s b s結構。p2p程式 即時客戶端,優勢伺服器端。tcp傳輸控制協議 udp...