<pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

          <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

          <p id="bbfd9"></p>

          <p id="bbfd9"><cite id="bbfd9"></cite></p>

            <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

            <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
            <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
            C語言

            c語言之指針基礎知識

            時間:2025-06-04 07:00:26 C語言 我要投稿
            • 相關推薦

            c語言之指針基礎知識

              將指針和普通變量進行比較,將有助于您理解指針。所謂“普通變量”就是存儲器中能夠保存數值的一個位置。例如,當您聲明變量i為一個整數時,四個字節的存儲空間就為它預留出來了。程序中用i表示那個預留出的位置。在機器的層面上看,這個位置具有一個內存地址。從這個地址開始的四個字節對您(程序員)來說就是變量i,它們可以保存一個整數。

            c語言之指針基礎知識

            c語言之指針基礎知識

              指針就不同了。指針是指向另一個變量的變量。意思是一個指針保存的是另一個變量的內存地址。換句話說,指針保存的并不是普通意義上的數值,而是另一個變量的地址值。一個指針保存了另一個變量的地址值,就說這個指針“指向”了那個變量。

              因為指針保存了地址而不是數值,所以它有兩個部分。指針本身保存一個地址,這個地址又指向一個數值,即:指針本身和被指向的數值兩部分。這個概念開始可能有些不好理解,而一旦掌握將是極有裨益的。

              下面的例子顯示了一個典型的指針:

              #include

              int main()

              {

              int i,j;

              int *p;

              p=&i;

              *p=5;

              j=i;

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

              return 0;

              }

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

              p=&i 這行您肯定還沒見過。C語言中, 這個表達式的意思就是“將i的地址賦值給p。”這條語句一經執行,p就“指向”了i。而此前p的內容是一個未知的隨機地址,直接使用的話很可能會導致程序錯誤或類似的程序崩潰。

              畫圖是觀察程序運行過程的好方法。聲明i、j和p后,程序的狀態是這個樣子:

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

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

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

              因為*p和i代表同一位置,i的值自然也就變成了5。于是j=i;將j也設為5,printf語句的輸出就是5 5 5。

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

            【c語言之指針基礎知識】相關文章:

            C語言之復雜指針詳解02-01

            C語言指針和數組基礎知識04-22

            C語言的指針12-21

            C語言指針教學02-10

            C語言指針的用法07-02

            C語言指針的概念02-25

            對C語言指針的總結03-30

            C語言指針的總結08-12

            C++ this指針詳解07-04

                    <pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

                    <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

                    <p id="bbfd9"></p>

                    <p id="bbfd9"><cite id="bbfd9"></cite></p>

                      <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

                      <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
                      <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
                      飘沙影院