鐵之狂傲

 取回密碼
 註冊
搜尋

切換到指定樓層
1#
25鐵幣
宣告一個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是什麼數字?

 
轉播0 分享0 收藏0

回覆 使用道具 檢舉

在微風找到解答了
(微風回文速度真快阿= =)
真的耶

  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

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

回覆 使用道具 檢舉

你需要登入後才可以回覆 登入 | 註冊

存檔|手機版|聯絡我們|新聞提供|鐵之狂傲

GMT+8, 24-10-3 12:31 , Processed in 2.939321 second(s), 14 queries , Gzip On.

回頂部