<ruby id="bdb3f"></ruby>

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

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 6.C語言通過指針引用數組 C語言規定:如果指針變量p已指向數組中的一個元素,則p+1指向同一數組中的下一個元素。 引入指針變量后,就可以用兩種方法來訪問數組元素了。 如果p的初值為&a[0],則: * p+i和a+i就是a[i]的地址,或者說它們指向a數組的第i個元素。 * *(p+i)或*(a+i)就是p+i或a+i所指向的數組元素,即a[i]。例如,*(p+5)或*(a+5)就是a[5]。 * 指向數組的指針變量也可以帶下標,如p[i]與*(p+i)等價。 根據以上敘述,引用一個數組元素可以用: * 下標法:即用a[i]形式訪問數組元素。在前面介紹數組時都是采用這種方法。 * 指針法:即采用*(a+i)或*(p+i)形式,用間接訪問的方法來訪問數組元素,其中a是數組名,p是指向數組的指針變量,其處值p=a。 【例10-9】輸出數組中的全部元素(下標法)。 ~~~ main(){ int a[10],i; for(i=0;i<10;i++) a[i]=i; for(i=0;i<5;i++) printf("a[%d]=%d\n",i,a[i]); } ~~~ 【例10-10】輸出數組中的全部元素(通過數組名計算元素的地址,找出元素的值)。 ~~~ main(){ int a[10],i; for(i=0;i<10;i++) *(a+i)=i; for(i=0;i<10;i++) printf("a[%d]=%d\n",i,*(a+i)); } ~~~ 【例10.11】輸出數組中的全部元素(用指針變量指向元素)。 ~~~ main(){ int a[10],i,*p; p=a; for(i=0;i<10;i++) *(p+i)=i; for(i=0;i<10;i++) printf("a[%d]=%d\n",i,*(p+i)); } ~~~ 【例10-12】 ~~~ main(){ int a[10],i,*p=a; for(i=0;i<10;){ *p=i; printf("a[%d]=%d\n",i++,*p++); } } ~~~ 幾個注意的問題。 1) 指針變量可以實現本身的值的改變。如p++是合法的;而a++是錯誤的。因為a是數組名,它是數組的首地址,是常量。 2) 要注意指針變量的當前值。請看下面的程序。 【例10-13】找出錯誤。 ~~~ main(){ int *p,i,a[10]; p=a; for(i=0;i<10;i++) *p++=i; for(i=0;i<10;i++) printf("a[%d]=%d\n",i,*p++); } ~~~ 【例10-14】改正。 ~~~ main(){ int *p,i,a[10]; p=a; for(i=0;i<10;i++) *p++=i; p=a; for(i=0;i<10;i++) printf("a[%d]=%d\n",i,*p++); } ~~~ 3) 從上例可以看出,雖然定義數組時指定它包含10個元素,但指針變量可以指到數組以后的內存單元,系統并不認為非法。 4) *p++,由于++和*同優先級,結合方向自右而左,等價于*(p++)。 5) *(p++)與*(++p)作用不同。若p的初值為a,則*(p++)等價a[0],*(++p)等價a[1]。 6) (*p)++表示p所指向的元素值加1。 7) 如果p當前指向a數組中的第i個元素,則: * *(p--)相當于a[i--]; * *(++p)相當于a[++i]; * *(--p)相當于a[--i]。
                  <ruby id="bdb3f"></ruby>

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

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看