c 學習筆記六

2021-09-01 10:25:33 字數 1886 閱讀 7256

指標

可以使用指標記號操作儲存在陣列中的資料

可以在函式中訪問函式外部的大塊資料

動態為新變數分配空間

1 指標的宣告: long * pnumber;

2 位址運算子: &

例如:long number=1234l;

long * pnumber;

pnumber=&number;

3 間接運算子: *

4 指標的初始化 :

可以用變數位址初始化指標,**如下:

int number=10;

int * pnumber=&number;

還可以int * pnumber=0;

5 把指標初始化為char型別

可以用字串字面量初始化:char * str1="this is a test!"; (由於字面量是const型別,所以該指標只是指向該字串位址,不能修改其字串內容;若想修改其內容,可以用以下形式:const char * str1="this is a test!";)

指標陣列 '

格式如下:

const char * strs=;

使用指針對字串進行排序

讓輸出結果變整齊

6 常量指標和指向常量的指標

const char * strs=;

以上指標可以通過以下語名進行修改: strs[1]=strs[2];(讓兩個指標指向同一位址,實際字串的位址不變)

進行如下修改後指標陣列就不能修改了:

const char * const strs=;

對指標及其指向的內容使用const有三種不同情況:

(1)指向常量的指標:const char * parstr="this is a test string!";(指標指向的內容不能修改)

(2)常量指標: int num=100; int * const pnum=# (儲存在指標中的位址不能修改)

(3)指向常量的常量指標 int num=100; const int * const pnum=#(兩者都不能改變)

7 指標和陣列

指標的算術運算

指標遞增一: int * pnmu; pnum++; (稱動指標到指標指向陣列的下乙個元素)

計算兩個指標之間的差

使用指標名的陣列表示法

把陣列用作指外針: int nums[2]=;可以用指標表示法 如 nums[2]等同於(*data+3)

對多維陣列使用指標: int bean[2][3]; int * pbean=&bean[0][0]

c樣式字串的操作

在中宣告的函式,實現分析和轉換單個字元

標頭檔案在

連線字串: strcat() 把第二個字串追加到第乙個字串中

strncat()有三個叄數,前兩個同上,第三個用於指定第二個字串的字元個數

複製:strcpy()

比較:strcmp()

搜尋:strchar()

8 動態分配記憶體

自由儲存區:程式中沒有用到的記憶體空間 new對應的delete 用來釋放未用到的空間

陣列的動態記憶體分配: pstring=new char[20];(分配自由儲存區的記憶體)

刪險陣列時使用 delete pstring; 這裡可以不用指定維數

動態分配記憶體的危險

記憶體洩露 new後一定要使用delete釋放記憶體

指標和變數的作用域

自由儲存區的碎片

轉換指標

reinterpret_cast《指標型別》(表示式) 強制轉換任何型別指標

例如:float value=2.5f;

float * pvalue=&value;

long * pnumber= reinterpret_cast(pvalue); (型別為long,值本身沒有變)

C 學習筆記(六)

函式 函式時乙個命名了的 塊,通過呼叫函式執行相應的 可以有0個或多個引數,通常會產生乙個結果。1.乙個典型的函式包含了四個部分 返回型別,函式名,形參列表以及函式體。2.函式的呼叫完成兩項工作 一是用是引數 隱式的 初始化函式對應的形參,當呼叫乙個函式時,首先建立乙個同型別的變數a,然後將a初始化...

C 學習筆記六

標準庫的棧 佇列 雙向佇列 io庫的條件狀態 輸出緩衝區的管理 使用的標頭檔案 include 是乙個容器 使用的方法 標準庫的棧是基於陣列的 和棧類似。使用標頭檔案 include 優化了的雙向佇列,向兩端插入刪除開銷小,支援操作符,但是效能比vector差,占用更多記憶體 使用標頭檔案 incl...

c 學習筆記 六 委託

委託是一種引用方法的型別.一旦為委託分配了方法,該委託與方法具有相同的型別,委託象其他方法一樣具有返回值和引數.如 public delegate int mydelegate int x int y 與該委託簽名相匹配的方法可以分配給該委託.delegate關鍵字用於宣告乙個引用型別,通常委託用於...