亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

急,求大神!C語言中sizeof問題

急,求大神!C語言中sizeof問題

C
簡單OK 2016-01-14 10:22:59
#include?<stdio.h>?? //輸出數組的長度? int?arr_str(double?a[])?{ ????int?len=sizeof(a)/sizeof(a[0]);??//1????????為何輸出1呢???為何不是數組的長度? ????return?len; } int?main(){ ????double?arr[]={1.78,?1.77,?1.82,?1.79,?1.85,?1.75,?1.86,?1.77,?1.81,?1.80}; ????printf("arr_str里面的數組長度為%d\n",arr_str(arr)); ????int?length?=?sizeof(arr)/sizeof(arr[0]); ????printf("main里面的數組長度為%d\n",length);???//正常輸出,?10 return?0; }為何用自定義函數來求數組的長度會顯示不正常呢,為1,而在main中就顯示正常。用的編輯器是dev-c++,64位操作系統。輸出結果為:如何解決?
查看完整描述

2 回答

?
留得枯荷聽雨聲lyx

TA貢獻51條經驗 獲得超16個贊

數組名其實就是一個指針,傳遞到函數的時候,只是傳遞了第一個元素

查看完整回答
1 反對 回復 2016-01-15
?
onemoo

TA貢獻883條經驗 獲得超454個贊

因為聲明在函數參數中的數組其實是指針,也就是說 a 是 double* 類型。

a[0] 得到的還是double類型,所以 sizeof a / sizeof a[0] 就是 sizeof(double) / sizeof(double)

查看完整回答
1 反對 回復 2016-01-14
  • 2 回答
  • 1 關注
  • 1720 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號