最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

知識分享:C語言知識干貨系列——指針篇

2022-03-02 17:00 作者:C語言編程__Plus  | 我要投稿

談到指針,我們可能會想到鐘表上的指針,但這里的指針不是現(xiàn)實生活中看得見摸得著的鐘表上的指針,c 語言中的指針只存在于邏輯思維中,物理上并不存在。

同時,指針也是C 語言中最精華的部分,通過靈活地運用指針,可以寫出獨具匠心、構(gòu)思巧妙的程序。


指針基礎(chǔ)

c 語言中指針的實質(zhì)就是地址

內(nèi)存地址

對于計算機中的內(nèi)存,都會以字節(jié)為單位,逐一地編上號碼,這個編號就是內(nèi)存的地址,如下圖:

圖中,按字節(jié)給內(nèi)存依次編上了號碼,其中每個數(shù)字對應(yīng)著1字節(jié)的內(nèi)存空間,而數(shù)字就是內(nèi)存的地址。

取地址運算符"&"

C 語言中,可以用"&"符號來獲取一個變量的內(nèi)存地址。只要在變量名前加上"&"符號就可以獲取變量名所表示的內(nèi)存地址。當獲取到變量的內(nèi)存地址后,就相當于得到了一個指向該變量的指針。簡單的總結(jié)一下:

&變量名 == 該變量的內(nèi)存地址 == 指向該變量的指針

解引用運算符“*”

既然可以通過取地址符獲取一個指向變量的指針。那怎么通過這個指針再找回原來的變量呢?

這時候就有了一個和取地址相逆的操作,我們把它稱為解引用,解引用需要用到星號“ * ”,它的使用格式為:

另外,C 語言中,還允許定義專門用于存儲內(nèi)存地址類型的變量,我們將其稱為地址變量,又被稱為指針變量。

指針、指針變量與內(nèi)存地址小區(qū)分

首先內(nèi)存地址是內(nèi)存單元的一個編號,可以把它當成一個常量看待;指針變量是一個能夠存放內(nèi)存地址的容器,它是一個變量;指針是無形的,我們可以把它想象成一個帶箭頭的長線,線尾連著指針變量,而箭頭指向了指針變量所保存的內(nèi)存地址處的數(shù)據(jù)


指針進階淺談

由于指針學起來涉及的內(nèi)容比較多,難度相比其他的也較大,所以下面我只是簡單的談一談指針變量、指針與數(shù)組,指針與字符串、指針與函數(shù)、二級指針,權(quán)且當做給大家提個醒,理一理邏輯,要具體學習還得自己再編程實戰(zhàn)中去體悟。

1,指針變量

指針變量也是變量的一種,但它與普通變量有所不同,普通變量存儲的是數(shù)據(jù),指針變量存儲的是內(nèi)存地址。

定義指針變量后,不要直接去使用,因為使用賦予確定內(nèi)存地址的"野指針"可能會出大問題。

2,指針與數(shù)組

C 語言中,數(shù)組名所對應(yīng)的值就是第一個數(shù)組元素的內(nèi)存地址,即可以把數(shù)組名看為指向數(shù)組首元素的指針。通過下面代碼片段理解:

還有什么很多諸如數(shù)組指針,指針數(shù)組等等各種定義,我覺得單純的記他們沒有什么必要,本身用的就不多,就算到了用的時候,直接問問”度娘“就ok 了

3,指針與字符串

字符串是常量,常量是C

語言中最簡單的表達式,而所有的表達式都是有值的,那字符串常量的值是什么呢?字符串常量的值就是字符串中首字符的內(nèi)存地址。例如 apple

這個字符串常量的值就是第一個字符 a 的內(nèi)存地址。因此我們可以用一個char 類型的指針來指向這個字符串。

4,指針與函數(shù)

函數(shù)時擁有特定功能的語句的集合,是構(gòu)成程序的基本模塊。在函數(shù)的定義過程中,可以將指針作為函數(shù)的參數(shù),也可以將指針作為函數(shù)的返回值,甚至可以用指針來指向一個函數(shù)。

限于篇幅限制,這里就簡單的提示一下,具體的區(qū)別或找一些具體例子來體會,大家很容易在網(wǎng)上搜集到的~ ~。

5,二級指針

所謂的二級指針就是指向指針的指針。其定義格式如下:

數(shù)據(jù)類型 **變量名

指針的實質(zhì)就是內(nèi)存地址,由于指針變量是可以存儲內(nèi)存地址的變量,因此也可將其視作指針。而指針變量本身也是變量,需要占用內(nèi)存空間,因此也有內(nèi)存地址。如果將這個內(nèi)存地址在存儲到另一個指針變量中,就形成了一個指向指針的指針,即指向指針的指針就是二級指針。

定義好二級指針后就需要對它進行初始化與賦值了

有了指針變量pi ,下面就可以定義一個二級指針并對其進行初始化了,如下:

6,特殊指針

指針是C 語言的精髓和靈魂。其中有兩種相對特殊的指針,一個是空指針,另一個是void 類型的指針。

希望對你有幫助!持續(xù)分享中······

作者:博客園丨Charmchin

寫在最后:對于準備學習C/C++編程的小伙伴,如果你想更好的提升你的編程核心能力(內(nèi)功)不妨從現(xiàn)在開始!

微信公眾號:C語言編程學習基地

整理分享(多年學習的源碼、項目實戰(zhàn)視頻、項目筆記,基礎(chǔ)入門教程)

歡迎轉(zhuǎn)行和學習編程的伙伴,利用更多的資料學習成長比自己琢磨更快哦!

編程學習書籍分享:

粉絲編程交流:


知識分享:C語言知識干貨系列——指針篇的評論 (共 條)

分享到微博請遵守國家法律
武定县| 将乐县| 肃宁县| 桓台县| 华蓥市| 泾源县| 甘孜县| 宝山区| 桂平市| 贞丰县| 双流县| 子洲县| 泸定县| 达日县| 新乡县| 衡水市| 德令哈市| 丹江口市| 太和县| 义马市| 阿拉善盟| 光泽县| 葫芦岛市| 深州市| 肃宁县| 彰化县| 余江县| 师宗县| 禄劝| 河北区| 揭阳市| 兴义市| 新郑市| 浦城县| 昌黎县| 汤原县| 阿克苏市| 大厂| 博白县| 邢台市| 阜宁县|