<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          31 指針變量

          共 1415字,需瀏覽 3分鐘

           ·

          2021-07-16 15:32

          點(diǎn)擊藍(lán)字

          關(guān)注我們

          DRAGON BOAT FESTIVAL

          01 怎么定義指針變量


          一般形式
          類型名 *指針變量名;

          例子:int *point_1,*point_2;


          左端的int是在定義指針變量時必須指定的“基類型”。指針變量的基類型用來指定此指針變量可以指向的變量的類型。

          指針變量前面的“*”表示該變量的類型為指針變量。

          一個變量的指針的含義包括兩個兩個方面,一是以存儲單元編號表示的地址,一是它指向的存儲單元的數(shù)據(jù)類型(如int,char,float等)。

          指向整型數(shù)據(jù)的指針類型表示為“int”,讀作“指向int的指針”或簡稱“int指針”。

          。。。。。。。。。。。。
          指針變量中只能存放地址(指針),不要將一個整數(shù)賦給一個指針變量。


          02 怎樣引用指針變量


          給指針變量賦值。如:p=&a;指針變量p的值是變量a的地址,p指向a。

          引用指針變量指向的變量。如已執(zhí)行

          p=&a

          即指針變量p指向了整型變量a,

          printf(“%d”,*p);

          其作用是以整數(shù)形式輸出指針變量p所指向的變量的值,即變量a的值。

          引用指針變量的值。如:

          printf(“%o”,p);


          作用是以八進(jìn)制形式輸出指針變量p的值,如果p指向了a,就是輸出了a的地址,即&a。

          &取地址運(yùn)算符。&a是變量a的地址。

          *指針運(yùn)算符,*p代表指針變量p指向的對象。


          03 指針變量作為函數(shù)參數(shù)


          訪問內(nèi)存空間,一般分為直接訪問和間接訪問。
          如果知道內(nèi)存空間的名字,可通過名字訪問該空間,稱為直接訪問。由于變量即代表有名字的內(nèi)存單元,故通。過變量名操作變量,也就是通過名字直接訪問該變量對應(yīng)的內(nèi)存單元。

          如果知道內(nèi)存空間的地址,也可以通過該地址間接訪問該空間。對內(nèi)存空間的訪問操作一般指的是存、取操作,即向內(nèi)存空間中存入數(shù)據(jù)和從內(nèi)存空間中讀取數(shù)據(jù)。

          在 C 語言中,可以使用間接訪問符(取內(nèi)容訪問符)*來訪問指針?biāo)赶虻目臻g。


          函數(shù)的參數(shù)不僅可以是整型、浮點(diǎn)型、字符型等數(shù)據(jù),還可以是指針類型,它的作用是將一個變量的地址傳送到另一個函數(shù)中。

          不能企圖通過改變指針形參的值而使指針實(shí)參的值改變。

          函數(shù)調(diào)用可以得到一個返回值,而使用指針變量作參數(shù),可以得到多個變化了的值。



          04 野指針



          把沒有合法指向的指針稱為“野”指針。因?yàn)椤耙啊敝羔橂S機(jī)指向一塊空間,該空間中存儲的可能是其他程序的數(shù)據(jù)甚至是系統(tǒng)數(shù)據(jù),故不能對“野”指針?biāo)赶虻目臻g進(jìn)行存取操作,否則輕者會引起程序崩潰,嚴(yán)重的可能導(dǎo)致整個系統(tǒng)崩潰。


          例如:

          int *pi,a; //pi未初始化,無合法指向,為“野”指針
          *pi=3; //運(yùn)行時錯誤!不能對”野”指針指向的空間做存入操作。//該語句試圖把 3 存入“野”指針pi所指的隨機(jī)空間中,會產(chǎn)生運(yùn)行時錯誤。
          a=*pi; //運(yùn)行時錯誤!不能對”野”指針指向的空間取操作。//該語句試圖從“野”指針pi所指的空間中取出數(shù)據(jù),//然后賦給變量a同樣會產(chǎn)生運(yùn)行時錯誤。


          正確的使用方法:

          pi=&a;//讓pi有合法的指向,pi指向a變量對應(yīng)的空間
          *pi=3;//把3間接存入pi所指向的變量a對應(yīng)的空間




          球分享

          球點(diǎn)贊

          球在看

          瀏覽 50
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  天天日天天插 | 色婷婷国产精品高潮呻吟AV久久 | 免费电影、欧美色图、亚洲色图 | 国产黄色录像 | 性爱视频网址 |