<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. C語言

    C語言二維數組怎么寫好

    時間:2025-01-29 22:29:50 C語言 我要投稿
    • 相關推薦

    C語言二維數組怎么寫好

      有同學在面對二維數組的時候,常常會犯渾。尤其是使用函數傳參的時候,有老師講到一維數組傳參后就等價于一級指針,部分同學舉一反三自學成才,想當然地認為二維數組傳參后就等價于二級指針,這是錯誤的。

      假如,有如下代碼:

      int a[2][3]; // 一個二維數組

      function(a); // 將二維數組傳參給一個函數

      上述代碼中,就是將一個二維數組傳遞給一個函數,那么這個函數怎么接受這個參數呢,答案是這樣的:

      void function(int a[2][3]) // 這是對的

      { }

      void function(int (*a)[3]) // 這也是對的

      { }

      千萬別寫成這樣:

      void function(int **a) // 這是錯的

      { }

      究其原因,還是回到以前提過多次的數組與指針的結論:任何數組,都將被一律視為一個指向其首元素的指針。因此以下兩行代碼是等價的:

      function(a);

      function(&a[0]);

      對于二維數組 int a[2][3] 而言,其首元素就是一個 int [3] ,因此&a[0]就是一個指向 int [3] 的指針,其類型當然是 int (*)[3] 了。這樣再來看上述的function兩種正確定義,就不難理解了。

    【C語言二維數組怎么寫好】相關文章:

    C語言二維數組08-16

    c語言怎么定義一維數組和二維數組07-22

    c語言中什么是二維數組10-13

    C語言二維數組的定義和引用10-04

    C語言二維數組知識點介紹05-21

    C語言的數組與函數10-23

    C語言數組教程08-31

    什么是C語言數組10-03

    C語言指針與二維數組資料詳解(附示例代碼)08-31

    <address id="ousso"></address>
    <form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
    1. 日日做夜狠狠爱欧美黑人