国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

野指針就像野狗嗎(指針詳解1)

zebrayoung / 1185人閱讀

摘要:我們平時(shí)說(shuō)指針,也可以指指針變量。是指針變量這段表達(dá)式的意思是定義了一個(gè)指針變量,里面存放的是的地址。叫做指針類(lèi)型就叫做指針變量指針類(lèi)型又是什么既然變量有不同的類(lèi)型,比如整型,浮點(diǎn)型等。


?? :熱愛(ài)編程學(xué)習(xí),期待一起交流!
?:博主水平有限,如有發(fā)現(xiàn)錯(cuò)誤,求告知,多謝!

前言

  • 以下是博主對(duì)近期指針的拙見(jiàn),如有錯(cuò)誤,請(qǐng)指教。(感謝萬(wàn)分!)
  • 博主最近初學(xué)了指針,感覺(jué)到了指針的魅力
    !指針就是C語(yǔ)言的精髓啊,感覺(jué)指針太厲害了。學(xué)會(huì)了一些指針的知識(shí)真的是感到成就感爆棚,并且感受到了指針的神奇。
  • 但指針并不可怕,指針只是比較抽象而已。理解的話(huà)很簡(jiǎn)單。你只要記住我下面說(shuō)的就行了。相信博主,你肯定能學(xué)懂指針。

指針是什么?

  • 指針只是一個(gè)名詞而已,指針就是地址
  • 我們平時(shí)說(shuō)指針,也可以指指針變量。

怎么表示?

類(lèi)型名  指針變量 = 地址;例如:int* pa = &a;//我們這里的指針類(lèi)型叫做int*,我讀做(yin te 星號(hào))。//pa是指針變量
  • 這段表達(dá)式的意思是:定義了一個(gè)指針變量pa,里面存放的是a的地址。而這個(gè)指針變量的類(lèi)型為int*。
  • 那下面就有同學(xué)疑惑了,那什么是指針變量?

什么是指針變量?

  • 很簡(jiǎn)單,在之前我們學(xué)習(xí)了怎么定義整型變量a。
  • 比如定義一個(gè)《整型》《變量a》,然后把a(bǔ)初始化為10。
int a = 10
  • 不過(guò)現(xiàn)在變了,我們現(xiàn)在學(xué)習(xí)了指針。
  • 可以定義一個(gè)《int*》《變量pa》,然后把pa初識(shí)化為&a。
  • 注意:
  • int* 是一個(gè)類(lèi)型。叫做指針類(lèi)型
  • pa就叫做指針變量
int* pa = &a;

指針類(lèi)型又是什么?

  • 既然變量有不同的類(lèi)型,比如整型,浮點(diǎn)型等。
  • 那么指針也有也有不同的類(lèi)型。
char  *pc = NULL;int   *pi = NULL;short *ps = NULL;long  *pl = NULL;float *pf = NULL;double *pd = NULL;//NULL為空指針。
  • 這里可以看到,指針的定義方式是:類(lèi)型 + * 。
    其實(shí):
  • char* 類(lèi)型的指針是為了存放 char 類(lèi)型變量的地址。
  • short* 類(lèi)型的指針是為了存放 short 類(lèi)型變量的地址。
  • int* 類(lèi)型的指針是為了存放 int 類(lèi)型變量的地址。

指針類(lèi)型存在的意義

  • 那有這么多的指針的類(lèi)型,指針類(lèi)型的意義是什么?
  • 我們?cè)谶@里先說(shuō)兩個(gè)重要結(jié)論:
  • 指針的類(lèi)型決定了指針向前或者向后走一步(也就是地址+1)有多大(能走多少個(gè)字節(jié))
  • 指針的類(lèi)型決定了,對(duì)指針解引用的時(shí)候有多大的權(quán)限(能操作幾個(gè)字節(jié))。
  • 比如: char* 的指針+1(也就是地址加一)只能跳過(guò)一個(gè)字節(jié),而 int* 的指針+1(地址+1)就能跳過(guò)四個(gè)字節(jié)。
  • 因?yàn)閏har類(lèi)型在內(nèi)存中占1個(gè)字節(jié),int類(lèi)型在內(nèi)存中占4個(gè)字節(jié)。
  • 再比如: char* 的指針解引用就只能訪(fǎng)問(wèn)一個(gè)字節(jié),而 int* 的指針的解引用就能訪(fǎng)問(wèn)四個(gè)字節(jié)。
  • 也不能空談,我們看下面的例子
int main(){	int n = 10;//定義整型變量n,初始化為10	char* pc = (char*)&n;//定義字符類(lèi)型指針變量pc,初始化為n的地址	int* pi = &n;//定義整型指針變量pi,初始化為n的地址	printf("%p/n", &n);	printf("%p/n", pc);	printf("%p/n", pc + 1);	printf("%p/n", pi);	printf("%p/n", pi + 1);	return 0;}
  • 打印結(jié)果如下,為16進(jìn)制的數(shù)字。
  • 可以看出來(lái)字符類(lèi)型的指針變量pc加1,只能操作一個(gè)字節(jié),所以從4+1變到5。
  • 而整型變量pi+1跳過(guò)了4個(gè)字節(jié),變?yōu)榱?。

    綜上所述,這就是指針類(lèi)型的意義。

野指針是什么?

  • 聽(tīng)到野指針可能有人會(huì)疑惑這個(gè)名詞什么意思啊?
  • 不要著急,野指針很好理解。

對(duì)一個(gè)狗形容為野的話(huà),可以理解為這個(gè)野狗經(jīng)常占別人的地盤(pán),或者隨機(jī)出現(xiàn)在任何地方

  • 所以野指針也是這個(gè)意思呀。
  • 野指針就是總是占別人內(nèi)存(地址)的指針。或者隨機(jī)出現(xiàn)一個(gè)地址。

野指針產(chǎn)生的原因

一、 指針未初始化

int main(){  int *p;//局部變量指針未初始化,默認(rèn)為隨機(jī)值    *p = 20; return 0; }

二、 指針越界訪(fǎng)問(wèn)

#include <stdio.h>int main(){    int arr[10] = {0};    int *p = arr;    int i = 0;    for(i=0; i<=11; i++)   {        //當(dāng)指針指向的范圍超出數(shù)組arr的范圍時(shí),p就是野指針        *(p++) = i;   }    return 0; }

如何避免野指針(野狗)的出現(xiàn)呢?

  1. 指針初始化(就是把野狗栓到一個(gè)地方,不讓他隨便占別人的地盤(pán))
  2. 小心指針越界(把野狗拴好,避免掙脫繩子)

指針運(yùn)算

  • 指針減指針,得到是兩個(gè)指針之間的元素個(gè)數(shù)。

總結(jié)

  • 今天博主(11月23日 1:25分)就先分享到這里了。小命要緊,明天還要早起上課。
  • 如果你覺(jué)得我的文章對(duì)你有幫助?歡迎關(guān)注?點(diǎn)贊?收藏??留言?。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/124784.html

相關(guān)文章

  • 五分鐘殺穿指針 pointer——C語(yǔ)言專(zhuān)題

    摘要:另外,通過(guò)指針可以更便捷地操作數(shù)組。在一定意義上可以說(shuō),指針是語(yǔ)言的精髓。野指針成因除了未初始化還有就是越界訪(fǎng)問(wèn)或者指針指向空間已經(jīng)釋放。所以不難知道兩個(gè)地址相減就是元素的個(gè)數(shù),這個(gè)表達(dá)式的前提是兩個(gè)指針指向同一塊空間。 ...

    MycLambert 評(píng)論0 收藏0
  • [C/C++ -STL]vector使用及迭代器失效問(wèn)題詳解

    摘要:函數(shù)底層實(shí)際上是對(duì)指針的操作隸書(shū)向,范圍內(nèi)比較等于的第一個(gè)元素返回迭代器。指定位置元素的刪除操作使用查找所在位置的刪除位置的數(shù)據(jù),導(dǎo)致迭代器失效。因此刪除中任意位置上元素時(shí),就認(rèn)為該位置迭代器失效了。 ...

    VishKozus 評(píng)論0 收藏0
  • 【C語(yǔ)言】從入門(mén)到入土(指針篇)

    摘要:在位機(jī)器上,如果有個(gè)地址線(xiàn),那一個(gè)指針變量的大小是個(gè)字節(jié),才能存放一個(gè)地址。就是一個(gè)指針變量,也有自己的類(lèi)型,指針變量的類(lèi)型我們可以發(fā)現(xiàn)指針的定義方式是類(lèi)型星號(hào)。也就是說(shuō)存儲(chǔ)什么變量類(lèi)型就用什么指針變量類(lèi)型。 ...

    陳偉 評(píng)論0 收藏0
  • C語(yǔ)言指針這一篇夠了(一萬(wàn)二千字,包含指針與數(shù)組,函數(shù)指針詳解

    摘要:指針變量可以存放基本類(lèi)型數(shù)據(jù)的地址,也可以存放數(shù)組函數(shù)以及其他指針變量的地址。數(shù)組名表示的是整個(gè)數(shù)組所占的字節(jié)數(shù)。在這里數(shù)組指針的類(lèi)型是。這也是我們可以用數(shù)組指針來(lái)接收二維數(shù)組數(shù)組名的原因。 目錄 零.前言 一.指針的定義 二.指針類(lèi)型的意義 1.指針類(lèi)型決定了指針解引用時(shí)一次訪(fǎng)問(wèn)幾個(gè)字...

    My_Oh_My 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<