av手机免费在线观看,国产女人在线视频,国产xxxx免费,捆绑调教一二三区,97影院最新理论片,色之久久综合,国产精品日韩欧美一区二区三区

C語言

c語言指針的基本概念

時(shí)間:2025-04-07 11:51:45 C語言 我要投稿
  • 相關(guān)推薦

c語言指針的基本概念

  關(guān)于指針的基本概念,我就不詳細(xì)介紹了,因?yàn)橛性S多書都介紹的很詳細(xì)。這里我只介紹一部分。指針指向一個(gè)地址,而指針本身在大多數(shù)系統(tǒng)上都是一個(gè)無符號(hào)整數(shù)(在32bit機(jī)上是4byte,在64bit機(jī)上是8byte)。

  下面用一個(gè)例子來說明其機(jī)制:

  在上面的例子中,先定義了一個(gè)指針p,它的類型是int,也就是說它只能指向一個(gè)int型的變量,而不能指向其他類型的變量。最后我們將a變量的地址賦給p。在這個(gè)過程中,涉及到兩個(gè)內(nèi)存塊,一個(gè)是存放指針p的內(nèi)存(用&p可得到內(nèi)存地址),一個(gè)是存放a的值的內(nèi)存塊(用&a可以得到內(nèi)存地址)。而第一個(gè)內(nèi)存存的p的值經(jīng)過賦值語句后也就是&a的值了。另外一個(gè)注意點(diǎn)是, *(星號(hào))和變量類型以及變量名之間可以有任意個(gè)空格,也可以沒有。比如下面三種方式都是一樣的:

  int a = 10;

  int *p; //聲明一個(gè)指針,但未初始化,此時(shí)為野指針

  p = &a; //將a變量的地址賦給指針p

  在上面的例子中,先定義了一個(gè)指針p,它的類型是int,也就是說它只能指向一個(gè)int型的變量,而不能指向其他類型的變量。最后我們將a變量的地址賦給p。在這個(gè)過程中,涉及到兩個(gè)內(nèi)存塊,一個(gè)是存放指針p的內(nèi)存(用&p可得到內(nèi)存地址),一個(gè)是存放a的值的內(nèi)存塊(用&a可以得到內(nèi)存地址)。而第一個(gè)內(nèi)存存的p的值經(jīng)過賦值語句后也就是&a的值了。另外一個(gè)注意點(diǎn)是, *(星號(hào))和變量類型以及變量名之間可以有任意個(gè)空格,也可以沒有。比如下面三種方式都是一樣的:

  int* a;

  int * a;

  int *a;

  解讀方法:

  首先從標(biāo)示符開始閱讀,然后往右讀,每遇到圓括號(hào)的右半邊就調(diào)轉(zhuǎn)閱讀方向。重復(fù)這個(gè)過程直到整個(gè)聲明解析完畢。需要注意的是,已經(jīng)讀過的部分在后續(xù)作為一個(gè)整體來看。

  看下面一個(gè)例子:

  int *a[3];

  //首先a右邊是[],說明a是一個(gè)具有3個(gè)元素的數(shù)組

  //右邊讀完,則讀左邊。a左邊是int*,說明a的元素是int類型的指針

  int (*a)[3]

  //首先,a右邊是圓括號(hào)的右半邊,轉(zhuǎn)向,左邊是一個(gè)*,說明a是一個(gè)指針

  //遇到括號(hào),再轉(zhuǎn)向,是一個(gè)[],說明a是一個(gè)指向3個(gè)元素的數(shù)組的指針

  //左邊是int,說明元素類型是int

  //所以,a是一個(gè)指向具有3個(gè)整型元素的數(shù)組的指針

  int (*func)(int p);

  //相同的方法,func首先是一個(gè)指針

  //然后右邊是一個(gè)括號(hào),說明(func)是個(gè)函數(shù),而func是指向這個(gè)函數(shù)的指針

  //這個(gè)函數(shù)具有int類型的參數(shù),返回值類型為int

  int (*func[3])(int p);

  //同理,func首先是一個(gè)具有3個(gè)元素的數(shù)組

  //其次,func左邊是一個(gè)*,說明func數(shù)組的元素是指針。要注意修飾的是func[3],而不是func。因?yàn)橐呀?jīng)讀過的部分在后面都作為一個(gè)整體來對待

  //跳出第一個(gè)圓括號(hào),右邊又是一個(gè)圓括號(hào),說明func數(shù)組的元素是函數(shù)類型的指針。這個(gè)函數(shù)具有int類型的參數(shù)和int型返回值


【c語言指針的基本概念】相關(guān)文章:

C語言的指針10-11

C語言指針的總結(jié)08-12

C語言指針教學(xué)10-28

C語言指針的用法07-02

什么是C語言中指針 C語言指針的基礎(chǔ)使用10-01

C語言指針的傳遞10-13

對C語言指針的總結(jié)08-27

C語言指針的概念08-20

C語言指針函數(shù)和函數(shù)指針詳解09-29