#討論 為甚麼ARY_LEN是2?

2020年12月3日 01:23
int str_len(int ary[]){ return (int)(sizeof(ary)/sizeof(ary[0])); } int main(int argc, char *argv[]) { int ary[] = {3,5,1,-7,4,9,-6,8,10,4}; int ARY_LEN = str_len(ary); }
1
回應 18
文章資訊
10 篇文章0 人追蹤
Logo
每週有 27 則貼文
共 18 則留言
國立高雄科技大學 資訊工程系
那麼你覺得是多少
B1 因為我希望它輸出陣列的元素數
淡江大學
國立臺北大學
國立中山大學
直白的來說 在參數中的 int ary[] 其實等同於 int *ary 所以 sizeof(ary) 會等於是一個指標的大小 有沒有覺得這語言很雷🤣
國立臺灣大學
8/4=2
國立清華大學 資訊安全研究所
B6 哪有雷 就用好就行了 用得好很省記憶體使用ㄉ阿ˊˇˋ
國立高雄科技大學 資訊工程系
是說 ARY_LEN應該是1吧?!
國立清華大學 資訊安全研究所
B9 這要看 OS
國立高雄科技大學 資訊工程系
B10 怎麼說呢? 請教一下
匿名
這則留言已被刪除
已經刪除的內容就像 Dcard 一樣,錯過是無法再相見的!
國立清華大學 資訊安全研究所
B11 32bit 系統 指標大小為 4 int 也是 4 64bit 系統 指標大小為 8 int 還是 4 簡單來說是這樣 詳細的 數值範圍 都要看 那個 OS 怎麼定義 好啦 其實 上面 那個 32/64 bit 也不是每個 都是這樣 真的要看 系統... 還有 編譯器設計==
國立高雄科技大學 資訊工程系
B13 謝謝 我 大概 有點 懂了ww
B7 為什麼sizeof(Ary[0])==4? Ary[0]應該是一個interger 應該要是1啊
元智大學
B15 sizeof(int)為何會是1? B16 那篇文應該就有說了吧......
B17 對吼 int是4bytes所以是4 64bit是8bytes所以是8 - 我以為只有某幾段是你想表達的重點