【C語言】初始指針(上)-創(chuàng)新互聯(lián)

【C語言】初始指針(上)
  • 1·什么是指針
        • 指針理解的3個要點(diǎn):
  • 2·指針和指針類型
        • 2.1 指針+-整型
        • 2.2 指針的解引用
  • 3·野指針
        • 3.1指針的成因
            • 1.指針未初始化
            • 2.指針越界訪問
            • 3.指針指向的空間釋放
        • 3.2如何規(guī)避野指針

專業(yè)成都網(wǎng)站建設(shè)公司,做排名好的好網(wǎng)站,排在同行前面,為您帶來客戶和效益!成都創(chuàng)新互聯(lián)公司為您提供成都網(wǎng)站建設(shè),五站合一網(wǎng)站設(shè)計(jì)制作,服務(wù)好的網(wǎng)站設(shè)計(jì)公司,網(wǎng)站制作、成都網(wǎng)站建設(shè)負(fù)責(zé)任的成都網(wǎng)站制作公司!1·什么是指針 指針理解的3個要點(diǎn):

1.指針式內(nèi)存中一個最小單元的編號,也就是地址
2.平時口語中說的指針,通常指的是指針變量,是用來存放內(nèi)存地址的變量
3.指針的大小在32位平臺是4個字節(jié);在64位平臺是8個字節(jié)
總結(jié):指針就是地址,口語中說的指針通常指的是指針變量。

2·指針和指針類型

接下來我們說一下指針的類型
我們都知道,變量有不同的類型:整型,浮點(diǎn)型等。那指針有沒有類型呢?
準(zhǔn)確的說:有的。

2.1 指針±整型

我們都知道一個int類型占用4個字節(jié),而一個char類型占用1一字節(jié),指針的類型就決定了指針向前或向后的距離(也就是走一步的大?。?br />
在這里我們可以從內(nèi)存中清晰的看到,地址變化的大小,這就是指針類型的意義之一。

2.2 指針的解引用

上邊說了指針其實(shí)就是變量的地址,而指針的解引用操作就是找到指針?biāo)傅倪@個變量,對其進(jìn)行重新賦值等操作。
在這里插入圖片描述
在這個圖中我們可以看到,int類型的指針可以正常的把值修改成我們想要的結(jié)果;而char類型卻不行(在這里,因?yàn)閏har是一個字節(jié),所以在內(nèi)存中只能一個字節(jié)一個字節(jié)的修改我們變量,而我們的arr2數(shù)組卻是int類型,四個字節(jié)位一組,所以其只能修改10個字節(jié)的內(nèi)存,結(jié)果也就不是我們想要的了),這就是指針類型的另一個意義。
總結(jié):
指針的類型決定了,對指針進(jìn)行解引用操作時,有多大的權(quán)限(能操作幾個字節(jié))。

3·野指針

概念:野指針就是指針指向的位置是不可知的,隨機(jī)的

3.1指針的成因 1.指針未初始化
int main()
{int a = 10;
	int* p;
	*p = &a;
	return 0;

}

大多數(shù)編程小白經(jīng)常會這樣寫代碼,其實(shí)這個代碼是有問題的,其問題在于,一開始未進(jìn)行初始化,所以指針?biāo)赶虻膬?nèi)存就是未知的,后續(xù)進(jìn)行的賦值操作,也就未知的內(nèi)存中進(jìn)行修改,這可能導(dǎo)致程序奔潰。所以,我們要盡可能避開這種寫法。
這里推薦一種寫法:

int main()
{int a = 10;
	int* p = NULL;
	//NULL - 相當(dāng)于\0 
	*p = &a;
	return 0;

}
2.指針越界訪問

在這里插入圖片描述
在這里我們就能看見,指針解引用操作已超過數(shù)組的大小,在編譯器中會報(bào)錯的,并且我們也不知道后續(xù)的指針知道了那兒里。

3.指針指向的空間釋放

這里放在后續(xù)的時候講解,這里就簡單提示一下。

3.2如何規(guī)避野指針
  1. 指針初始化
  2. 小心指針越界
  3. 指針只想空間釋放,及時置NUL
  4. 避免返回局部變量的地址
  5. 指針使用之前檢查有效性
int main()
{int* p = NULL;
	//....
	int a = 10;
	p = &a;
	if (p != NULL)//檢查指針有效性
	{*p = 20;
	}
	return 0;
}

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

網(wǎng)頁標(biāo)題:【C語言】初始指針(上)-創(chuàng)新互聯(lián)
文章網(wǎng)址:http://muchs.cn/article30/iccpo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、移動網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站排名、域名注冊、微信公眾號

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)