摘要:本文重點(diǎn)字符指針指針數(shù)組數(shù)組指針數(shù)組傳參和指針傳參引在指針的初階已接觸過(guò)指針的概念,并介紹了如下內(nèi)容指針是個(gè)變量,用來(lái)存放地址,地址唯一標(biāo)識(shí)一塊內(nèi)存空間,所以地址也形象的被稱(chēng)作指針。解析指針數(shù)組指針數(shù)組即,存放指針的數(shù)組。
在指針的初階已接觸過(guò)指針的概念,并介紹了如下內(nèi)容
1.指針是個(gè)變量,用來(lái)存放地址,地址唯一標(biāo)識(shí)一塊內(nèi)存空間,所以地址也形象的被稱(chēng)作指針。
2.指針大小是固定的4/8字節(jié)(32位平臺(tái)/64位平臺(tái))。
3.指針是有類(lèi)型的,類(lèi)型決定被看待的視角,即決定了 指針 ± 整數(shù) 跳過(guò)的步長(zhǎng);指針解引用 時(shí)的訪(fǎng)問(wèn)權(quán)限。
4.指針的運(yùn)算:指針 ± 整數(shù);指針 - 指針;指針大小比較。
有關(guān)這部分內(nèi)容還有好多細(xì)節(jié),我還沒(méi)寫(xiě)文章,為了使內(nèi)容連貫后期會(huì)考慮補(bǔ)一篇。
這篇文章,將探討有關(guān)指針的高級(jí)主題。
同時(shí),《指針與數(shù)組面試題的解析》也在籌備中了,小伙伴們期待吧! 哈哈哈
正文開(kāi)始@邊通書(shū)
字符指針有下面兩種使用場(chǎng)景:
1.指向字符
2.指向字符串
那么就有這樣一道面試題:
小伙伴們先來(lái)自己做做做看吶。
#include int main(){ char str1[] = "hello Asi."; char str2[] = "hello Asi."; char *str3 = "hello Asi."; char *str4 = "hello Asi."; if (str1 == str2) printf("str1 and str2 are same/n"); else printf("str1 and str2 are not same/n"); if (str3 == str4) printf("str3 and str4 are same/n"); else printf("str3 and str4 are not same/n"); return 0;}
解析:
指針數(shù)組即,存放指針的數(shù)組。
寫(xiě)幾段代碼,感受一下它的使用:
代碼1:
代碼2:
代碼3:
這里 指針±整數(shù) 的等價(jià)思想還是比較有用的。
數(shù)組指針是什么?指針還是數(shù)組?
答案是:指針。其實(shí)做一個(gè)類(lèi)比就好。
先做一個(gè)小小的知識(shí)鋪墊,其實(shí)本來(lái)也是該包含在初階內(nèi)容之中滴。
即arr與&arr的區(qū)別:
定義類(lèi)比:
這里既然知道了數(shù)組指針的概念,就做一道小練習(xí):
問(wèn):p的類(lèi)型應(yīng)該怎么寫(xiě)?
#include int main(){ int* arr[10] = { 0 }; //p = &arr; //問(wèn):p的類(lèi)型應(yīng)該怎么寫(xiě)? return 0;}
解析:
數(shù)組指針的使用
數(shù)組指針用對(duì)還是蠻好用的,但用錯(cuò)了那是非常別扭。
錯(cuò)誤示范:
那數(shù)組指針到底是怎樣訪(fǎng)問(wèn)到每個(gè)元素的呢?
下面就來(lái)看數(shù)組指針在二維數(shù)組中怎樣使用:
介紹了數(shù)組指針和指針數(shù)組的,我們一起來(lái)看看下面代碼是什么意思:
int arr[5];int *parr1[10];int (*parr2)[10];int (*parr3[10])[5];
解析:
寫(xiě)代碼的時(shí)候難免要把【數(shù)組】或【指針】傳給函數(shù),那函數(shù)的參數(shù)如何設(shè)計(jì)呢?
4.1 一維數(shù)組傳參
4.2 二維數(shù)組傳參
4.3 一級(jí)指針傳參
反向思考:當(dāng) 函數(shù)參數(shù) 部分是一級(jí)指針時(shí)候,函數(shù)能接收什么參數(shù)?
4.4 二級(jí)指針傳參
反向思考:當(dāng) 函數(shù)參數(shù) 部分是二級(jí)指針時(shí)候,函數(shù)能接收什么參數(shù)?
未完待續(xù)@邊通書(shū)。
劇透:
中篇將介紹:點(diǎn)擊直達(dá)三文讀透指針語(yǔ)法(中篇)@指針的進(jìn)階—函數(shù)指針+函數(shù)指針數(shù)組+指向函數(shù)指針數(shù)組的指針
- 函數(shù)指針
- 函數(shù)指針數(shù)組
- 指向函數(shù)指針數(shù)組的指針,
下篇將介紹:
回調(diào)函數(shù)
敬請(qǐng)期待!
同時(shí),鄙人才疏學(xué)淺,如果有錯(cuò)誤和理解不到位之處,或是建議,衷心希望能得到您的指教。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/118795.html
摘要:三文讀透指針上篇本文將繼續(xù)介紹有關(guān)函數(shù)指針的相關(guān)內(nèi)容。在大型工程里,函數(shù)指針應(yīng)用還是挺普遍的。首先看閱讀下面兩段有趣的代碼出自語(yǔ)言陷阱與缺陷看看他們是什么意思代碼代碼函數(shù)指針數(shù)組函數(shù)指針數(shù)組,即存放函數(shù)指針的數(shù)組。 ...
摘要:本章節(jié)在此基礎(chǔ)上,對(duì)語(yǔ)言階段指針進(jìn)行更深層次的研究。數(shù)組指針的類(lèi)型由數(shù)組類(lèi)型決定,先找出數(shù)組的類(lèi)型去掉名就是類(lèi)型。相當(dāng)于數(shù)組指針?biāo)赶驍?shù)組的數(shù)組名。數(shù)組指針指向整個(gè)數(shù)組,將其看作二維數(shù)組并解引用得到一行的首元素,從而遍歷訪(fǎng)問(wèn)。 ...
摘要:所以是數(shù)組指針,而是指針數(shù)組。因?yàn)閷?duì)一個(gè)二維數(shù)組,可以不知道有多少行,但是必須知道一行多少元素。當(dāng)二維數(shù)組數(shù)組名傳參,形參接收時(shí),數(shù)組的行可以省略,列不能省略,如果省略了列,我們就無(wú)法知道當(dāng)指針加減跳過(guò)幾個(gè)字節(jié)。 ...
摘要:讓我們來(lái)看一下代碼,首先我們還是冒泡排序一樣,進(jìn)行了兩次循環(huán),第一次代表排序趟數(shù),第二次代表每趟的排序次數(shù)。這塊的詳細(xì)介紹在本篇文章稍前的冒泡排序中也有詳細(xì)介紹。 ...
摘要:故使用無(wú)具體類(lèi)型,又稱(chēng)通用類(lèi)型,即可以接收任意類(lèi)型的指針,但是無(wú)法進(jìn)行指針運(yùn)算解引用,整數(shù)等。求指針?biāo)甲止?jié)而不是解引用訪(fǎng)問(wèn)權(quán)限大小。數(shù)組就是整個(gè)數(shù)組的大小,數(shù)組元素則是數(shù)組元素的大小,指針大小都為。 ...
閱讀 1850·2023-04-26 00:59
閱讀 3143·2021-11-15 18:10
閱讀 3089·2021-09-22 16:02
閱讀 778·2021-09-02 15:15
閱讀 3730·2019-08-30 15:56
閱讀 1928·2019-08-30 15:54
閱讀 2870·2019-08-29 16:31
閱讀 2046·2019-08-29 16:10