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

C語(yǔ)言

c語(yǔ)言之指針基礎(chǔ)知識(shí)

時(shí)間:2025-06-04 07:00:26 C語(yǔ)言 我要投稿
  • 相關(guān)推薦

c語(yǔ)言之指針基礎(chǔ)知識(shí)

  將指針和普通變量進(jìn)行比較,將有助于您理解指針。所謂“普通變量”就是存儲(chǔ)器中能夠保存數(shù)值的一個(gè)位置。例如,當(dāng)您聲明變量i為一個(gè)整數(shù)時(shí),四個(gè)字節(jié)的存儲(chǔ)空間就為它預(yù)留出來(lái)了。程序中用i表示那個(gè)預(yù)留出的位置。在機(jī)器的層面上看,這個(gè)位置具有一個(gè)內(nèi)存地址。從這個(gè)地址開(kāi)始的四個(gè)字節(jié)對(duì)您(程序員)來(lái)說(shuō)就是變量i,它們可以保存一個(gè)整數(shù)。

c語(yǔ)言之指針基礎(chǔ)知識(shí)

c語(yǔ)言之指針基礎(chǔ)知識(shí)

  指針就不同了。指針是指向另一個(gè)變量的變量。意思是一個(gè)指針保存的是另一個(gè)變量的內(nèi)存地址。換句話說(shuō),指針保存的并不是普通意義上的數(shù)值,而是另一個(gè)變量的地址值。一個(gè)指針保存了另一個(gè)變量的地址值,就說(shuō)這個(gè)指針“指向”了那個(gè)變量。

  因?yàn)橹羔槺4媪说刂范皇菙?shù)值,所以它有兩個(gè)部分。指針本身保存一個(gè)地址,這個(gè)地址又指向一個(gè)數(shù)值,即:指針本身和被指向的數(shù)值兩部分。這個(gè)概念開(kāi)始可能有些不好理解,而一旦掌握將是極有裨益的。

  下面的例子顯示了一個(gè)典型的指針:

  #include

  int main()

  {

  int i,j;

  int *p;

  p=&i;

  *p=5;

  j=i;

  printf("%d %d %d ", i, j, *p);

  return 0;

  }

  程序的第一行聲明了兩個(gè)普通的整型變量i和j。int *p這行聲明了一個(gè)名為p的指針。它告訴編譯器,所聲明的變量p是一個(gè)指向整數(shù)的指針。*表示聲明的是指針而不是普通變量。您可以創(chuàng)建任何類型的指針:float,結(jié)構(gòu)體,char等等。只要用*指出您要的是指針而非普通變量即可。

  p=&i 這行您肯定還沒(méi)見(jiàn)過(guò)。C語(yǔ)言中, 這個(gè)表達(dá)式的意思就是“將i的地址賦值給p!边@條語(yǔ)句一經(jīng)執(zhí)行,p就“指向”了i。而此前p的內(nèi)容是一個(gè)未知的隨機(jī)地址,直接使用的話很可能會(huì)導(dǎo)致程序錯(cuò)誤或類似的程序崩潰。

  畫(huà)圖是觀察程序運(yùn)行過(guò)程的好方法。聲明i、j和p后,程序的狀態(tài)是這個(gè)樣子:

  上圖中的三個(gè)變量i、j和p都被聲明過(guò)了,但還沒(méi)有初始化。所以將兩個(gè)整型變量以含有問(wèn)號(hào)的方框表示——程序執(zhí)行到這一步時(shí)它們的內(nèi)容可以是任何值。將指針以圓圈表示,以區(qū)別于保存數(shù)值的一般變量,隨意的幾個(gè)箭頭表示它現(xiàn)在可能指向任何一個(gè)位置。

  執(zhí)行了p=&i這行后,p被初始化為指向i,像這樣:

  p指向i之后,i代表的內(nèi)存位置就有了兩個(gè)名字。它除了叫做i,現(xiàn)在還叫做*p。這就是為什么說(shuō)C中的指針變量有兩個(gè)部分:p是容納地址的`位置,而*p是地址指向的位置。因此*p=5的意思是將p指向的位置的值設(shè)為5,像這樣:

  因?yàn)?p和i代表同一位置,i的值自然也就變成了5。于是j=i;將j也設(shè)為5,printf語(yǔ)句的輸出就是5 5 5。

  指針的主要特性是它天生具有兩部分。指針本身除了保存地址,還指向某種類型的值,而這個(gè)值的地址正是指針保存的那個(gè)。在上面的例子中,指針本身是p,它指向的值是*p。

【c語(yǔ)言之指針基礎(chǔ)知識(shí)】相關(guān)文章:

C語(yǔ)言之復(fù)雜指針詳解02-01

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

C語(yǔ)言的指針12-21

C語(yǔ)言指針教學(xué)02-10

C語(yǔ)言指針的用法07-02

C語(yǔ)言指針的概念02-25

對(duì)C語(yǔ)言指針的總結(jié)03-30

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

C++ this指針詳解07-04