国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【C】指針——知識(shí)點(diǎn)大全(詳細(xì),簡(jiǎn)潔,含例題)

這篇具有很好參考價(jià)值的文章主要介紹了【C】指針——知識(shí)點(diǎn)大全(詳細(xì),簡(jiǎn)潔,含例題)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

?前言:大家好,這里是YY;此篇博客主要是指針的知識(shí)點(diǎn);包含【一二級(jí)指針】【字符指針】【指針數(shù)組】【數(shù)組指針】【以上知識(shí)的實(shí)際應(yīng)用】【函數(shù)指針】【函數(shù)指針數(shù)組】

PS:創(chuàng)作不易,每個(gè)知識(shí)點(diǎn)都有例題或者圖幫助理解;如果對(duì)你有幫助,希望能夠得到您的關(guān)注,贊,收藏,謝謝!??

目錄

一.指針的基本概念

二.理解一級(jí)指針,二級(jí)指針

2.二級(jí)指針傳參

精華.二級(jí)指針的實(shí)際應(yīng)用場(chǎng)景: 鏈表的增刪查改(逐步探究)

三.字符指針

1.字符指針指向常量字符串

*加上const后的數(shù)據(jù)在內(nèi)存中存儲(chǔ)的情況

2.利用字符指針打印字符串

四.指針數(shù)組

1.應(yīng)用:存儲(chǔ)字符串組

2.應(yīng)用:模擬二維數(shù)組

五.&數(shù)組名 / &數(shù)組名[ ] / 數(shù)組名

六.指針類型決定步長(zhǎng)(演示)

七.數(shù)組指針

1.基本概念與形式

2.區(qū)分指針數(shù)組與數(shù)組指針

3.數(shù)組指針的使用

一.(數(shù)組傳參,數(shù)組形式接收)

二.(首元素地址傳參)

*三.(數(shù)組指針傳參)——較繁瑣,在一維數(shù)組上用的比較少

八.指針在二維數(shù)組的應(yīng)用

1.常規(guī)寫法(數(shù)組傳參,數(shù)組形式接收)

2.指針寫法(數(shù)組傳參,數(shù)組指針形式接收)

九.小總結(jié):區(qū)分下列表達(dá)式

1.基礎(chǔ)部分

2.拓展部分?

十.數(shù)組參數(shù),指針參數(shù)要點(diǎn)

1.一維數(shù)組傳參要點(diǎn)

一.數(shù)組形式接收

?二.用指針形式接收

2.二維數(shù)組傳參要點(diǎn)?

一.數(shù)組形式接收

二.用數(shù)組指針形式接收

十一.函數(shù)指針

十二.函數(shù)指針數(shù)組

1.作用與使用演示:

2. 應(yīng)用場(chǎng)景:替代switch case語(yǔ)句


一.指針的基本概念

  1. 指針就是個(gè)變量,用來(lái)存放地址(地址唯一標(biāo)識(shí)一塊內(nèi)存空間)
  2. 指針的大小是固定的4/8個(gè)字節(jié)(32位平臺(tái)/64位平臺(tái))
  3. 指針是有類型的,指針的類型決定了“指針的+-整數(shù)的步長(zhǎng)”,以及解引用時(shí)候的權(quán)限
  4. 指針之間存在運(yùn)算

二.理解一級(jí)指針,二級(jí)指針

指針:即一個(gè)指針變量指向一份普通類型的數(shù)據(jù),因?yàn)橹羔槺4媪四莻€(gè)數(shù)據(jù)的地址,可以通過(guò)解引用找到它(p1找到a)

一級(jí)指針圖示:

【C】指針——知識(shí)點(diǎn)大全(詳細(xì),簡(jiǎn)潔,含例題)


2.二級(jí)指針傳參

二級(jí)指針:即一個(gè)指針變量指向指針,因?yàn)橹羔槺4媪四莻€(gè)數(shù)據(jù)的地址,可以通過(guò)兩次解引用找到它(p2解引用找到p1,再解引用找到a)

二級(jí)指針圖示:

【C】指針——知識(shí)點(diǎn)大全(詳細(xì),簡(jiǎn)潔,含例題)


精華.二級(jí)指針的實(shí)際應(yīng)用場(chǎng)景: 鏈表的增刪查改(逐步探究)

我們可以觀察如圖所示的情況:

說(shuō)明:

  • pphead是函數(shù)SLPushBack中接收plist地址的指針
  • 函數(shù)SLPuchBack實(shí)現(xiàn)的是尾插功能,tail指針變量存儲(chǔ)尾指針,newnode是malloc一個(gè)新節(jié)點(diǎn)以后存儲(chǔ)新節(jié)點(diǎn)的指針

【C】指針——知識(shí)點(diǎn)大全(詳細(xì),簡(jiǎn)潔,含例題)

  • 當(dāng)SLPushBack()函數(shù)結(jié)束后,會(huì)返還空間,此時(shí)結(jié)構(gòu)體plist再也找不到在堆上的鏈表
  • 解決方法:一級(jí)指針!讓plist指向頭指針(如果頭指針不可被修改)guard

【C】指針——知識(shí)點(diǎn)大全(詳細(xì),簡(jiǎn)潔,含例題)

  • 但是如果頭指針不是哨兵位的頭節(jié)點(diǎn)(guard),而是可以被刪除的結(jié)點(diǎn)呢?
  • 解決方法:二級(jí)指針!每一次調(diào)用函數(shù),都會(huì)把plist指向頭指針

【C】指針——知識(shí)點(diǎn)大全(詳細(xì),簡(jiǎn)潔,含例題)


三.字符指針


1.字符指針指向常量字符串

字符指針指向常量字符串原理:指針指向字符串首元素的地址

理解圖示:

【C】指針——知識(shí)點(diǎn)大全(詳細(xì),簡(jiǎn)潔,含例題)

PS:為滿足“常量字符串不可修改”,需改進(jìn):“指針前加上const

【C】指針——知識(shí)點(diǎn)大全(詳細(xì),簡(jiǎn)潔,含例題)


*加上const后的數(shù)據(jù)在內(nèi)存中存儲(chǔ)的情況

編譯器從內(nèi)存優(yōu)化的角度處理,數(shù)據(jù)只會(huì)存放到同一個(gè)地址

【C】指針——知識(shí)點(diǎn)大全(詳細(xì),簡(jiǎn)潔,含例題)


2.利用字符指針打印字符串

打印原理:打印字符串只需要首元素地址

const char*ps="abcdef";
printf("%s\n",ps);

四.指針數(shù)組

指針數(shù)組類型:類型 * [ n ]


1.應(yīng)用:存儲(chǔ)字符串組

【C】指針——知識(shí)點(diǎn)大全(詳細(xì),簡(jiǎn)潔,含例題)


2.應(yīng)用:模擬二維數(shù)組

【C】指針——知識(shí)點(diǎn)大全(詳細(xì),簡(jiǎn)潔,含例題)


五.&數(shù)組名 / &數(shù)組名[ ] / 數(shù)組名

引入:我們知道arr是數(shù)組名即首元素地址,那&arr是什么?

結(jié)論:

  • 除了在sizeof()中,在&arr中,arr(數(shù)組名)指的不是數(shù)組首元素的地址
  • &arr的類型是數(shù)組指針(例:int(*pa)[10])
  • &arr[0]與arr的類型是指針(例:int*

六.指針類型決定步長(zhǎng)(演示)

要點(diǎn):&arr取出的是整個(gè)數(shù)組的地址,+1后則跳過(guò)整個(gè)數(shù)組

【C】指針——知識(shí)點(diǎn)大全(詳細(xì),簡(jiǎn)潔,含例題)


七.數(shù)組指針


1.基本概念與形式

數(shù)組指針類型:int(*)[10]

int arr[10]={1,2,3,4,5};
int (*pa)[10]=&arr;  取出的是數(shù)組的地址存放到pa中,pa是數(shù)組指針變量

2.區(qū)分指針數(shù)組與數(shù)組指針

  • int*p1[10]:指針數(shù)組
  • int(*p)[10]:數(shù)組指針

3.數(shù)組指針的使用


一.(數(shù)組傳參,數(shù)組形式接收)

  • 數(shù)組傳參傳數(shù)組名的本質(zhì):也是傳首元素地址
  • 【數(shù)組的地址=首元素的地址=數(shù)組的起始位置】

【C】指針——知識(shí)點(diǎn)大全(詳細(xì),簡(jiǎn)潔,含例題)


二.(首元素地址傳參)

【C】指針——知識(shí)點(diǎn)大全(詳細(xì),簡(jiǎn)潔,含例題)

?PS:數(shù)組名是首元素地址:只有兩個(gè)例外:sizeof(數(shù)組名)/&數(shù)組名


*三.(數(shù)組指針傳參)——較繁瑣,在一維數(shù)組上用的比較少

【C】指針——知識(shí)點(diǎn)大全(詳細(xì),簡(jiǎn)潔,含例題)


八.指針在二維數(shù)組的應(yīng)用


1.常規(guī)寫法(數(shù)組傳參,數(shù)組形式接收)

代碼圖示:

【C】指針——知識(shí)點(diǎn)大全(詳細(xì),簡(jiǎn)潔,含例題)


2.指針寫法(數(shù)組傳參,數(shù)組指針形式接收)

原理:

  • *所以當(dāng)二維數(shù)組的首元素+1時(shí),直接跳過(guò)一行,來(lái)到下一行

  • *變化以后,可以視作(一維數(shù)組)首元素的地址”+j”后,訪問(wèn)數(shù)組

原理圖示:

【C】指針——知識(shí)點(diǎn)大全(詳細(xì),簡(jiǎn)潔,含例題)

代碼圖示:?

【C】指針——知識(shí)點(diǎn)大全(詳細(xì),簡(jiǎn)潔,含例題)


九.小總結(jié):區(qū)分下列表達(dá)式


1.基礎(chǔ)部分

  • int*parr1[10]:指針數(shù)組類型
  • int(*parr2)[10]:數(shù)組指針類型
  • int(*parr3[10])[5]:存放數(shù)組指針數(shù)組

? ? ??PS: int (*? ? ? ? ? ? ? ? ? ? ) [5] 是?數(shù)組指針?類型,

? ? ? ? ? ? ? ? ? ? ? ?parr3[10]? ?是?數(shù)組?類型


2.拓展部分?

  • (*(void(*) ( ) )0 ) ( );函數(shù)類型

【C】指針——知識(shí)點(diǎn)大全(詳細(xì),簡(jiǎn)潔,含例題)

  • void(*signal(int,void(*)(int)))(int);函數(shù)聲明?
  • 可改寫為?
typedef void(*pf_t)(int);

pt_f signal(int,pf_t);

【C】指針——知識(shí)點(diǎn)大全(詳細(xì),簡(jiǎn)潔,含例題)


十.數(shù)組參數(shù),指針參數(shù)要點(diǎn)


1.一維數(shù)組傳參要點(diǎn)


一.數(shù)組形式接收

要點(diǎn):數(shù)組傳參本質(zhì)上傳的是地址,所以不用專門創(chuàng)建一個(gè)數(shù)組接受——不用規(guī)定大小

代碼演示:?

void test1(int arr[]);
void test1(int arr[10];  均可以順利傳參
int main()
{
  int arr[10]={0};
  test1(arr);
  test1(arr);   
}

?二.用指針形式接收

代碼演示:

void test1(int*arr);
int main()
{
  int arr[10]={0};
  test1(arr); 
}

2.二維數(shù)組傳參要點(diǎn)?


一.數(shù)組形式接收

要點(diǎn):二維數(shù)組的列不能省略,即“列”需要規(guī)定大小

代碼演示:

正確寫法
void test1(int arr[3][5]);
void test1(int arr[ ][5]);
錯(cuò)誤寫法:
void test1(int arr[ ][ ]); 
void test1(int arr[3][ ]); 

int main()
{
  int arr[3][5]={0};
  test1(arr); 
}

二.用數(shù)組指針形式接收

要點(diǎn):必須要用數(shù)組指針接收

代碼演示:

正確寫法:
void test1(int(*arr)[5]);
錯(cuò)誤寫法:
void test1(int*arr);

int main()
{
  int arr[10]={0};
  test1(arr); 
}

十一.函數(shù)指針

函數(shù)指針類型:int(*pf)(int,int)


十二.函數(shù)指針數(shù)組

函數(shù)指針數(shù)組:int(*? ?pfArr[4]? )(int,int)


1.作用與使用演示:

函數(shù)指針數(shù)組作用:可以存放多個(gè)【參數(shù)相同,返回類型相同】的函數(shù)的地址

使用演示:

?【C】指針——知識(shí)點(diǎn)大全(詳細(xì),簡(jiǎn)潔,含例題)


2. 應(yīng)用場(chǎng)景:替代switch case語(yǔ)句

【C】指針——知識(shí)點(diǎn)大全(詳細(xì),簡(jiǎn)潔,含例題)【C】指針——知識(shí)點(diǎn)大全(詳細(xì),簡(jiǎn)潔,含例題)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-451675.html

到了這里,關(guān)于【C】指針——知識(shí)點(diǎn)大全(詳細(xì),簡(jiǎn)潔,含例題)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 微機(jī)原理 || 8253接口芯片知識(shí)點(diǎn)+4道經(jīng)典例題+手寫解題過(guò)程

    微機(jī)原理 || 8253接口芯片知識(shí)點(diǎn)+4道經(jīng)典例題+手寫解題過(guò)程

    ? 【例1】 :? 設(shè)825 3 端口地址為3 00H~303H, 要求計(jì)數(shù)器2工作在方式5,二進(jìn)制計(jì)數(shù), CLK2=2MHz , OUT2=1KHz。 試按上述要求完成825 3 的 初始化 。 ? 【例2】: 選擇計(jì)數(shù)器 0 工作于方式 3 ,計(jì)數(shù)初值為 1234 ,十進(jìn)制計(jì)數(shù)方式;計(jì)數(shù)器 2 工作于方式 2 ,計(jì)數(shù)初值為 61H ,采用二進(jìn)制

    2024年02月10日
    瀏覽(18)
  • 【計(jì)算機(jī)網(wǎng)絡(luò)】第五章傳輸層知識(shí)點(diǎn)及經(jīng)典例題匯總

    【計(jì)算機(jī)網(wǎng)絡(luò)】第五章傳輸層知識(shí)點(diǎn)及經(jīng)典例題匯總

    1、從通信和信息處理的角度看,傳輸層向它上面的應(yīng)用層提供通信服務(wù),它屬于面向通信部分的最高層,同時(shí)也是用戶功能中的最低層 2、此層包含TCP和UDP協(xié)議。TCP 傳送的數(shù)據(jù)單位協(xié)議是 TCP 報(bào)文段(segment),UDP 傳送的數(shù)據(jù)單位協(xié)議是 UDP 報(bào)文或用戶數(shù)據(jù)報(bào)。 3、IP數(shù)據(jù)報(bào)要經(jīng)過(guò)

    2024年02月04日
    瀏覽(26)
  • selenium知識(shí)點(diǎn)大全

    在使用selenium之前必須先配置瀏覽器對(duì)應(yīng)版本的webdriver。 1. 初始化瀏覽器對(duì)象 2. 訪問(wèn)指定網(wǎng)頁(yè) 3. 設(shè)置瀏覽器大小 4. 刷新頁(yè)面 5. 前進(jìn)和后退 6. 獲取頁(yè)面基本屬性

    2024年02月04日
    瀏覽(55)
  • C++知識(shí)點(diǎn) -- 智能指針

    C++知識(shí)點(diǎn) -- 智能指針

    對(duì)于上面的場(chǎng)景,p1和p2在new申請(qǐng)空間后,div函數(shù)如果出現(xiàn)了除0錯(cuò)誤,那么程序就會(huì)拋出異常,跳到接受異常的程序段繼續(xù)執(zhí)行,p1和p2申請(qǐng)的空間就沒有被正常釋放,造成了內(nèi)存泄漏; 這種場(chǎng)景我們就可以使用智能指針來(lái)解決空間的釋放問(wèn)題。 RAII(Resource Acquisition Is Initia

    2024年02月03日
    瀏覽(24)
  • MySQL鎖知識(shí)點(diǎn)掃盲大全

    MySQL鎖知識(shí)點(diǎn)掃盲大全

    ? 1. 為什么需要加鎖 ? 在日常生活中,如果你心情不好想靜靜,不想被比別人打擾,你就可以把自己關(guān)進(jìn)房間里,并且反鎖。這就是生活中的加鎖。 ? 同理,對(duì)于MySQL數(shù)據(jù)庫(kù)來(lái)說(shuō)的話,一般的對(duì)象都是一個(gè)事務(wù)一個(gè)事務(wù)來(lái)說(shuō)的。所以,如果一個(gè)事務(wù)內(nèi),一個(gè)SQL正在更新某條記

    2024年02月08日
    瀏覽(25)
  • 【C語(yǔ)言】指針知識(shí)點(diǎn)筆記(2)

    【C語(yǔ)言】指針知識(shí)點(diǎn)筆記(2)

    目錄 一、野指針 二、assert斷言 三、指針的使用和傳址調(diào)用 四、數(shù)組名的理解 五、使用指針訪問(wèn)數(shù)組

    2024年01月18日
    瀏覽(23)
  • 【初階】C語(yǔ)言指針詳解——指針必備的7大知識(shí)點(diǎn)

    【初階】C語(yǔ)言指針詳解——指針必備的7大知識(shí)點(diǎn)

    本篇文章我們來(lái)了解C語(yǔ)言中指針的相關(guān)內(nèi)容,對(duì)于指針可以說(shuō)是C語(yǔ)言學(xué)習(xí)中較難理解的內(nèi)容。本篇以了解指針為目的,以初識(shí)為導(dǎo)向,從表層入手,淺析C指針! 理解指針的 兩個(gè)要點(diǎn): 指針是內(nèi)存中一個(gè)最小單元的編號(hào),也就是地址 平時(shí)口語(yǔ)中說(shuō)的指針,通常指的是指針變

    2024年02月02日
    瀏覽(23)
  • Java核心知識(shí)點(diǎn)整理大全23-筆記

    Java核心知識(shí)點(diǎn)整理大全23-筆記

    目錄 21. JAVA 算法 21.1.1. 二分查找 21.1.2.冒泡排序算法 21.1.3. 插入排序算法 21.1.4. 快速排序算法 21.1.1. 希爾排序算法 21.1.2. 歸并排序算法 21.1.3. 桶排序算法 21.1.4. 基數(shù)排序算法 21.1.5. 剪枝算法 21.1.6. 回溯算法 21.1.7. 最短路徑算法 21.1.8. 最大子數(shù)組算法 21.1.9. 最長(zhǎng)公共子序算法

    2024年02月04日
    瀏覽(54)
  • 前端Vue3框架知識(shí)點(diǎn)大全

    Vue.js是一種流行的JavaScript前端框架,它的第三個(gè)版本Vue3帶來(lái)了許多令人興奮的新特性和改進(jìn)。 1、響應(yīng)式數(shù)據(jù) : Vue 3采用了基于Proxy的響應(yīng)式系統(tǒng),相比Vue 2中的Object.defineProperty,Proxy提供了更強(qiáng)大和靈活的攔截器,可以捕獲對(duì)象的各種操作。這使得Vue 3的響應(yīng)式系統(tǒng)更加高效

    2024年02月11日
    瀏覽(26)
  • 關(guān)于“Python”的核心知識(shí)點(diǎn)整理大全34

    關(guān)于“Python”的核心知識(shí)點(diǎn)整理大全34

    目錄 第13 章 外星人 13.1 回顧項(xiàng)目 game_functions.py 13.2 創(chuàng)建第一個(gè)外星人 13.2.1 創(chuàng)建 Alien 類 alien.py 13.2.2 創(chuàng)建 Alien 實(shí)例 alien_invasion.py 13.2.3 讓外星人出現(xiàn)在屏幕上 game_functions.py 13.3 創(chuàng)建一群外星人 13.3.1 確定一行可容納多少個(gè)外星人 注意 13.3.2 創(chuàng)建多行外星人 alien_invasion.py gam

    2024年02月04日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包