C 語言、3 個問題、多維陣列和指標

發布 科技 2024-08-08
5個回答
  1. 匿名使用者2024-01-31

    #include

    我沒有寫完會議以找到最大值。

    void print(int array[5], int row)//row =hang

    int i;

    int j;

    for(i = 0; i < row; i++)

    for(j = 0; j < 5; j++)

    printf("%d,", array[i][j]);

    if(0 == (j + 1)%5)

    printf("");

    void double_print(int array[5], int row)

    int i;

    int j;

    printf("the second array");

    for(i = 0; i < row; i++)

    for(j = 0; j < 5; j++)

    int double_array = 2 * array[i][j];

    printf("%d,", double_array);

    if(0 == (j+1)%5)

    printf("");

    void max_array(int array[5],3)

    int ntemp;

    int i;

    int j;

    printf("the max_value in the array");

    for(i = 0; i < row; i++)

    for(j = 0; j < 5; j++)

    if(array[i][j+1] ntemp = array[i][j+1];

    array[i][j+1] = array[i][j];

    array[i][j+1] = ntemp;

    printf("%d,", array[i][j]);

    if(0 == (j+1)%5)

    printf("");

    void main()

    int array[3][5]=,print(array, 3);

    double_print(array, 3);

    max_array(array,3);

  2. 匿名使用者2024-01-30

    以下是我的理解:

    A 是乙個二維陣列,即乙個二級指標,那麼 a 表示指向陣列頭部的二級指標,*a 表示指向陣列頭部的第一級指標,**a 表示第乙個陣列元素。 因為二維陣列只是記憶體位址上一維陣列的連續表示,所以 a 和 *a 之間的區別在於它們具有不同的有效範圍,分別是陣列的兩個維度的維度。

    所以 a 和 *a 都是指向陣列標頭的指標,它們都指向第乙個元素,因此輸出位址是相同的。

    已確認:包括

    int main()

    int a[2][2] = ;

    printf("%x, %x, %d", a, *a, *a);

    return 0;

    輸出:

  3. 匿名使用者2024-01-29

    我們沒有學過這種方法,我們從一開始就不知道原理。

  4. 匿名使用者2024-01-28

    1.與int a[3][2] =, (p)[2]=a1; 則 *(*p+2)+1) 的值為 1。

    問題6:有人說p是兩個元素的一維陣列,怎麼會包含兩個元素呢?

    然後請解釋 (*p)[2]=a1,*(p+2)+1 和求解過程。

    int a[3][2] =,嚴格來說,表示應該是:

    int a[3][2] =, //a[0]

    A[1]A[2],三組,每組兩組。

    int (*p)[2]=a1 的正確寫法是:int (*p)[2]=a[0] ; p 是乙個指標,它指向的位址中的資料型別為“two ints”,即 p 指向的位址中的資料可以看作是“兩個元素的陣列”。" 。您應該能夠理解此描述。

    p+0 --a[0]

    p+1 --a[1]

    p+2---a[2]

    p+2) 更改為 a[2][0]。

    p+2)+1 指向 a[2][1] 的位址。

    *(p+2)+1) 是 a[2][1] = 6 的值

    2,.有乙個二維字元陣列 char s[4][6]=,執行程式 cout<<*s[2],螢幕顯示 (

    A 高 B 唐 C G D T 答案 B

    問題:什麼是 *s[2]? 你如何找出 s[0][2] 的值?

    s[0] 指向"zhang"

    S[1] 指向"gao"

    S[2] 指向"tang"

    s[3] 指向"wang"

    s[2] 指的是 s[2] 的第乙個值 t,所以答案應該是 d

    首先,我們需要了解指標是什麼。

    然後你必須弄清楚陣列名稱是什麼。

    然後弄清楚陣列和指標之間的關係。

    然後,我們將了解多維陣列的概念。

    讓我們研究一下多維陣列和指標之間的關係。

    最後,討論了陣列指標的概念。

  5. 匿名使用者2024-01-27

    第乙個不完整。

    2. 可以看一下二維陣列的初始化,s[i](i=0,1,2,3) 都是 char* 型別的指標。

相關回答
7個回答2024-08-08

a) int *b[ ] 錯誤,指標必須指向受控的已知記憶體位址。 >>>More

22個回答2024-08-08

陣列和指標之間的區別:

陣列名稱確實表示指向陣列第乙個位址的指標,但是這個指標很特殊,它的值(指標的值是指標指向的位址)不能被覆蓋,只能覆蓋它指向的內容,換句話說,陣列名稱只能指向陣列的第乙個位址, 如果有陣列 char a;那麼如果 a = a+1; 這是乙個甚至無法編譯的錯誤。 對於普通指標,例如,可能有乙個陣列 char a; 然後定義乙個字元 *p = a; 然後使用 p = p+1 是有效的,這意味著指標 p 指向 &a[1]。 >>>More

13個回答2024-08-08

這個問題本身有問題。

結果沒有初始化,沒有指向任何空格就傳遞給add函式,這本身就是錯誤的,當然也可以實現,在add函式中申請乙個位址來儲存結果,並將位址發回給結果,但是該位址的**是無法控制的, 容易造成記憶體洩漏。 >>>More

7個回答2024-08-08

方法]建立乙個有序陣列 a[10]=,最後乙個數字是多餘的,等於多少並不重要。 >>>More

17個回答2024-08-08

p5[1] 取第二個字元的位址,即'b',列印結果為b,取p5[0]+1"def",列印結果為 def >>>More