儘管我們用一個整數數組聲明瞭一個函數,但是我們將該數組的地址傳遞給該函數。在簡單整數的情況下,如果我們傳遞地址,我們會得到指針轉換錯誤,這會導致錯誤。但如何其可能在一個陣列將數組傳遞給函數C
#include<stdio.h>
void print_array(int array[][100],int x, int y);
main()
{
int i,j,arr[100][100];
printf("Enter the array");
for(i=0;i<2;i++)
{
for(j=0;j<2;j++)
{
scanf("%d",&arr[i][j]);
}
}
print_array(arr,i,j);
}
void print_array(int array[][100],int x,int y)
{
int i,j;
printf("\nThe values are\n");
for(i=0;i<x;i++)
{
for(j=0;j<y;j++)
{
printf("%d",array[i][j]);
}
}
}
我的問題是,即使作爲第一個參數(在這裏)我們傳遞數組地址,當我們調用函數我們的函數聲明爲一個整數數組的情況下。它如何運作?
你得到什麼樣的錯誤?這是一個沒有錯誤的代碼示例:https://www.ideone.com/CAEoi。事實上,我可以運行您編寫的代碼,並且可以從您的代碼片段獲得我期望的https://www.ideone.com/3z1JO –
,因爲您使用的是x和y,所以最終會傳遞2那些在你正在讀取值的for循環中。你也只是用數據初始化[0] [0],a [0] [1],a [1] [0],a [1] [1],數組的其餘部分將會是垃圾(好處是你只打印你初始化的東西)。 – pstrjds
@pstrjds我的問題不是關於獲取錯誤。它關於其工作背後的邏輯。問題現在已更新。希望它現在更清晰 – user567879