int a;int *p=a;sizeof(p)和sizeof(*p)分別表示什么意思在數組中有一種用法用來求數組的元素個數int a[10];int b;b=sizeof(a)/sizeof(*a)這個怎么解釋,主要是書上說sizeof()括號里面接指針表示指針自身所具有的長度,可是這里sizeof(a)卻表示正葛數組的長度,是特別針對數組的特殊用法嗎
2 回答

拉丁的傳說
TA貢獻1789條經驗 獲得超8個贊
sizeof(a)表示整個數組的大小,即sizeof(int)*10
sizeof(*a)表示數組一個單元即a[0]的大小,等于sizeof(int)
b=sizeof(a)/sizeof(*a)表示數組中單元的個數即10

茅侃侃
TA貢獻1842條經驗 獲得超21個贊
sizeof是C/C++中的一個操作符(operator),簡單的說其作用就是返回一個對象或者類型所占的內存字節數。
sizeof(a) 相當于sizeof(數組類型)*數組長度=sizeof(int)*10=40
sizeof(*a)就表示數組a的第一個元素 sizeof(int)=4
這里表示一個對象或者類型所占的內存字節數,因此sizeof(數組名)時,表示這個數組所占空間的大小
- 2 回答
- 0 關注
- 249 瀏覽
添加回答
舉報
0/150
提交
取消