欧美日韩不卡一区二区三区,www.蜜臀.com,高清国产一区二区三区四区五区,欧美日韩三级视频,欧美性综合,精品国产91久久久久久,99a精品视频在线观看

C語言

c語言知識(shí):數(shù)組指針和指針數(shù)組的區(qū)別

時(shí)間:2025-05-11 01:57:02 C語言 我要投稿
  • 相關(guān)推薦

c語言知識(shí):數(shù)組指針和指針數(shù)組的區(qū)別

  指針數(shù)組和數(shù)組指針,這兩個(gè)名字不同當(dāng)然所代表的意思也就不同,下面是其區(qū)別,歡迎閱讀:

c語言知識(shí):數(shù)組指針和指針數(shù)組的區(qū)別

  指針數(shù)組:array of pointers,即用于存儲(chǔ)指針的數(shù)組,也就是數(shù)組元素都是指針

  數(shù)組指針:a pointer to an array,即指向數(shù)組的指針

  還要注意的是他們用法的區(qū)別,下面舉例說明。

  int* a[4] 指針數(shù)組

  表示:數(shù)組a中的元素都為int型指針

  元素表示:*a[i] *(a[i])是一樣的,因?yàn)閇]優(yōu)先級(jí)高于*

  int (*a)[4] 數(shù)組指針

  表示:指向數(shù)組a的指針

  元素表示:(*a)[i]

  注意:在實(shí)際應(yīng)用中,對于指針數(shù)組,我們經(jīng)常這樣使用:

  1

  2

  typedef int* pInt;

  pInt a[4];

  這跟上面指針數(shù)組定義所表達(dá)的意思是一樣的,只不過采取了類型變換。

  代碼演示如下:

  #include

  using namespace std;

  int main()

  {

  int c[4]={1,2,3,4};

  int *a[4]; //指針數(shù)組

  int (*b)[4]; //數(shù)組指針

  b=&c;

  //將數(shù)組c中元素賦給數(shù)組a

  for(int i=0;i<4;i++)

  {

  a[i]=&c[i];

  }

  //輸出看下結(jié)果

  cout<<*a[1]<<endl; p="" 輸出2就對<="">

  cout<<(*b)[2]<<endl; p="" 輸出3就對<="">

  return 0;

  }

  注意:定義了數(shù)組指針,該指針指向這個(gè)數(shù)組的首地址,必須給指針指定一個(gè)地址,容易犯的錯(cuò)得就是,不給b地址,直接用(*b)[i]=c[i]給數(shù)組b中元素賦值,這時(shí)數(shù)組指針不知道指向哪里,調(diào)試時(shí)可能沒錯(cuò),但運(yùn)行時(shí)肯定出現(xiàn)問題,使用指針時(shí)要注意這個(gè)問題。但為什么a就不用給他地址呢,a的元素是指針,實(shí)際上for循環(huán)內(nèi)已經(jīng)給數(shù)組a中元素指定地址了。但若在for循環(huán)內(nèi)寫*a[i]=c[i],這同樣會(huì)出問題。總之一句話,定義了指針一定要知道指針指向哪里,不然要悲劇。


【c語言知識(shí):數(shù)組指針和指針數(shù)組的區(qū)別】相關(guān)文章:

C語言中指針與數(shù)組的區(qū)別03-11

C語言指針數(shù)組的概念07-19

C語言數(shù)組與指針詳解08-15

C語言中指針與數(shù)組的詳解及區(qū)別02-20

C語言-15:多維數(shù)組與指針07-25

如何使用C語言數(shù)組指針04-27

C語言指針和數(shù)組基礎(chǔ)知識(shí)04-22

c語言數(shù)組指針變量的說明和使用07-26

C語言指針和數(shù)組的學(xué)習(xí)方法04-23