鐵之狂傲

標題: 宣告一個int陣列a,直接使用%d顯示a,出現的結果代表什麼? [列印本頁]

作者: magicalloveshe    時間: 07-7-13 01:07
標題: 宣告一個int陣列a,直接使用%d顯示a,出現的結果代表什麼?
宣告一個int陣列a

並且初始化為{1, 換行字元, 3, 4}

當我使用%d顯示sizeof(a)時,可以正確顯示出四倍int的byte大小。

我的電腦上是4byte,所以sizeof(a)顯示16。


  1. #include<stdio.h>
  2. #include<stdlib.h>

  3. main(){
  4.        int a[]={1 , '\n' , 3 , 4};
  5.        printf("%d\n%d\n" , sizeof(a) , a);
  6.        system("pause");
  7.        }
複製代碼



但是當我顯示 %d 的 a 時。顯示出一個很奇怪的數據

結果如下
  1. 16
  2. 2293600
複製代碼

請問2293600是什麼數字?
作者: magicalloveshe    時間: 07-7-13 01:18
在微風找到解答了
(微風回文速度真快阿= =)
真的耶

  1. #include<stdio.h>
  2. #include<stdlib.h>

  3. main(){
  4.        int a[]={1 , '\n' , 3 , 4};
  5.        printf("%d\n%d\n%d\n" , sizeof(a) , a , &a[0]);
  6.        system("pause");
  7.        }
複製代碼


改成這樣後就可以看到兩個一樣的數值了
而後面那一個數值就是a陣列中的第一個元素位置


  1. #include<stdio.h>
  2. #include<stdlib.h>

  3. main(){
  4.        int a[]={1 , '\n' , 3 , 4};
  5.        printf("%d\n%d\n%d\n%d\n" , sizeof(a) , a , &a[0] , &a[1]);
  6.        system("pause");
  7.        }
複製代碼

改成這樣還可以看到下一個元素的位置哦!

感謝cflee3000

要錢的來回個文吧,我想把文章留著,不刪掉。




歡迎光臨 鐵之狂傲 (https://gamez.com.tw/)