2023年06月12日學習日記c語言指標

2021-07-13 12:54:13 字數 2097 閱讀 6111

2023年06月12日學習日記c語言指標

多級指標

陣列和指標:陣列名是指標常量 陣列名就是乙個指標

指標陣列:陣列元素是指標

陣列指標:指標指向乙個陣列

引數:陣列、指標(一般用指標)

記憶體分配兩種形式:

1、靜態記憶體分配:系統編譯時自動分配空間、分配和**空間由系統完成

2、動態記憶體分配::程式執行時分配空間、分配空間和**空間由程式猿完成

1、棧:區域性變數、形式引數 由編譯器來完成開闢和釋放

2、堆:malloc new出來空間 完全由程式猿管理(開闢大小,釋放時間)

3、常量區:const 由編譯器來完成開闢和釋放

4、全域性/靜態儲存區:全域性變數(不定義在任何乙個函式內的變數)/static變數

注意:全域性變數變異開闢記憶體,程式結束釋放記憶體,記憶體的釋放不會受到任何乙個函式的影響

5、**區:

malloc:

void * malloc(size_t size) size_t :unsigned long

void * :空指標,使用時需要做型別轉換

size_t size:要開闢的空間大小 byte

如果成功、堆上開闢一塊哦那個賤,失敗返回null

malloc開闢出來的空間沒有名稱,通過指標使用堆空間,所以返回的是乙個空指標而不是void

mallow一定和free成對出現

#include 

void func()

常量與指標

常量指標(字串):不能通過指標修改指標所指向的變數的值。但是指標可以指向別的變數。

int a=5;

const

int *p=&a; 或者char

const*p=&a;

*p = 20;//error不能通過指標修改指向的變數的值

int b =10;

p = &b;//ok指標可以指向別的變數

int a = 5;

int * const p=&a;

*p = 20;//可以通過指標修改所指向的變數的值

int =10;

p=&b;//指標不能指向別的變數

// 誰在前誰不可變

引用:就是給變數起乙個別名 某某某;狗蛋兒

宣告時必須對引用進行初始化 &

常量引用:const int &j = i;常量引用(j)不能修改引用的值,但引用指向的便來給你(i)值自身可以做修改

變數的作用域:檔案域(整個檔案)、函式域(函式內部)、語句塊域

block或者函式中訪問檔案域變數用』::』

c語言中 可以出現相同名稱的識別符號(只要作用域不同即可)

鏈結extern:把多檔案合併成乙個可執行檔案

靜態區域性變數:區域性變數宣告時加static關鍵字 記憶體與函式無關(函式結束靜態區域性變數記憶體依然存在)多次呼叫不會重新被初始化、值使用上次保留值(變數值只會被初始化一次)

靜態區域性變數作用域和普通區域性變數相同(只能在該函式中使用)

靜態區域性變數儲存在靜態儲存區:程式結束釋放記憶體、自動

與普通區域性變數相比較:作用域不變、生命週期延長

靜態全域性變數:

和普通全域性變數比:

作用域被縮小,僅在當前目標檔案下可使用(不能通過extern來進行引用);生命週期不發生改變

 傳參:值、指標、引用(形參就是實參的乙個別名)

函式返回值:值、指標、引用(返回值就是函式中返回值的乙個別名)

當函式傳值返回,編譯器會返回變數建立乙個臨時變數湧來當返回值(即使區域性變數記憶體釋放,臨時變數記憶體依然還存在)

函式不能返回指向區域性變數的指標或引用,以防野指標

函式指標:乙個指標指向乙個函式

宣告方法:返回值型別(*指標變數名)([形參列表])//int (*fun)(int x,int y);

指標函式:乙個函式的返回值是乙個指標 //int *func(int x);

void*指標:空指標型別

空指標型別可以轉型為其他指標型別,但其他型別指標不能轉換成空指標型別不能對空指標型別進行解引用

2023年11月12日學習總結

今日彙總 gdb偵錯程式 除錯命令 例 gcc g test.c o test 開啟 gdb tes其中tes為可執行檔案 指令 run執行程式 list 行數 顯示 至指定行數 break 行數 執行到指定行數 next 單步執行 print 變數名 顯示指定變數在當前步驟的值 continue ...

2023年12月20日感想

剛才正在學習,突然之間有點感觸,很多做技術的都想著自己哪天成為大牛,我自己也總是這樣幻想,可是就在剛才自己突然想問自己,自己的努力有能讓自己成為大牛的可能麼?自己的回答是沒有,很多人的努力只是淺嘗輒止 這句話並沒有錯,適合很多人,也同樣適合我,大牛沒有突然之間形成的,都是靠技術一點一點累計而成的,當...

2023年6月28日訓練日記

這幾天主要還是打了cf的比賽。說好聽的是上分,說不好聽的就是刷水題練手速。最近也沒怎麼寫題解了。去翻了翻饒齊的部落格,發現我之前還真的沒有看過他的線段樹專題。週末可以看一下。昨晚cf的比賽又上分了 3題,rank500 rating 50 美滋滋。還得謝大佬 目前共13場rating1680 藍名,...