c課程筆記1

2021-08-31 06:34:31 字數 1314 閱讀 8793

一,函式的實參和形參

形參和實參個數一樣,型別一樣(各種語言可能有點區別,如c可以給int型賦float型值),順序一樣

如下所示:

# include

void f1(int i)

int main()

二,變數的作用域和儲存方式

1,按作用域分:

全域性變數

區域性變數

2,按儲存方式分

靜態變數

自動變數

暫存器變數

三,指標

1,指標定義: int * (int型別指標),既"int *"是一種變數型別

2,指標賦值:

int * p;

int i= 10;

p = &i;//&取位址符號 

*p++; 是i變數位址加4(c語言裡面int型別變數佔四個位元組)

(*p)++;等同於i++

四,指標的作用

1,可以表示複雜的資料結構(如樹,圖等)

2,快速傳遞引數

3,可以訪問硬體

4,使函式返回乙個以上的值

5,能夠方便的處理字串

五,指標的分類

1,基本型別指標

2,陣列指標

3,函式指標

4,結構體指標

5,多級指標

附註,*號的作用

a, 乘法運算

b,定義指標變數

c,指標運算子(如*p等同於以p的值為位址的變數引用)

六,陣列指標

1,指標和一維陣列

1)陣列名

2)下標和指標

3)指標變數運算

2,指標和二維陣列

七,動態內容分配

1,傳統陣列的缺點

a,陣列長度必需實現指定,只能是常整數,不能是變數。

如:int a[5];//合法定義

int len = 5; int a[len];//不合法定義

b,陣列所占用的記憶體,在其生命週期內無法手動釋放。

c,傳統陣列不能跨函式使用

2,為什麼需要動態記憶體分配

解決傳統陣列的缺點。

3,動態記憶體分配 --- 構建動態陣列

1,分配記憶體:malloc  --- memery allocate的縮寫

2,malloc函式只能返回第乙個位元組的位址

int * p = (int *)malloc(4);//如果是 int * p = (int *)malloc(10);也沒有錯

3,指標變數p的記憶體是靜態分配的,p所指向的記憶體是動態分配的。

4,靜態記憶體分配和動態記憶體分配的比較

5,跨函式使用記憶體問題

c語言課程筆記1

c語言程式設計1 5章知識總結與感想 第二章1.基本整型 int 長整型 long 短整型 short 無符號整型 unsigned 有符號整型常量 無符號整型常量 長整形常量 無符號長整形常量 2.實型 單精度實型 float 雙精度實型 double 長雙精度實型 long double 3.字...

C語言程式設計課程筆記1

2018級 數學 四班 2018212773 張越 first 知識點總結 一 c資料型別 1.c語言程式處理的資料型別分類 4類 基本型別有 整型 int 4個位元組 long 4 short 2 unsigned.實型 float 4 double 8 long double 10 字元型 ch...

CSAPP課程筆記1

第一周 計算機系統概述 1.sum函式執行錯誤 問題 呼叫函式 計算陣列a中元素的和 int sum int a,unsigned len 當len為0時,呼叫後得不到結構,程式執行異錯誤,當len定義為int型時執行正確 2.函式呼叫後變數的變化 問題 在p.c檔案中,為 double d voi...