學了數組,我有一個很難的問題想問
#include <stdio.h>
int main()
{
? ?; //使用第一種方式初始化方式聲明并初始化二維數組arr1
? ? int arr2[2][2];
? ? arr2[0][0]=1;
? ? arr2[0][1]=2;
? ? arr2[1][0]=3;
? ? arr2[1][1]=4;
? ? //使用第二種方式初始化方式聲明并初始化二維數組arr2
? ? printf("%d,%d",arr1,arr2);
}
輸出結果我試過了,是兩個個數字6356736,6356720 。
我想知道為什么會輸出這兩個數字???
我改變了下名字,數字沒變。只改變arr1的值,輸出也沒變,。然后改變arr1的內存大小int arr1[2][1]={{1},{3}},輸出就變了,而且兩個數字都變了。
這是為啥?求大佬解釋。
2018-11-27
你這樣扎別人心,哈哈哈
2018-10-06
首先不是我打擊你,你寫成這樣,報錯了沒檢查嗎?
你的return 0;呢??
你定義arr1了你就輸出??
輸出數組不用for循環(huán)直接printf?
主函數第一行;分號是什么鬼?
你給這個代碼問問題嗎?
你輸出的是地址,是你電腦內存的地址,。
如果你是問這個題,我會。你要是問地址,我也說不清。
#include <stdio.h>
int main()
{
??? //使用第一種方式初始化方式聲明并初始化二維數組arr1
??? int arr1[2][2]={{10,20},{30,40}};
??? //使用第二種方式初始化方式聲明并初始化二維數組arr2
??? int arr2[2][2];
??? arr2[0][0]=10;arr2[0][1]=20;
??? arr2[1][0]=30;arr2[1][1]=40;
???
??? int i,j;
??? for(i=0;i<2;i++)
??? {
??????? for(j=0;j<2;j++)
??????? {
??????????? printf("%d ",arr1[i][j]);
??????????? if(j==1)
??????????? {
??????????????? printf("\n");
??????????? }
??????? }
??? }
??? for(i=0;i<2;i++)
??? {
??????? for(j=0;j<2;j++)
??????? {
??????????? printf("%d ",arr2[i][j]);
??????????? if(j==1)
??????????? {
??????????????? printf("\n");
??????????? }
??????? }
??? }
???
???
??? return 0;???
}