3
このコードは、sizeof()を使用せずに配列サイズをどのように決定するのですか?
Cのインタビューの質問をたどると、「sizeof演算子を使用せずにCで配列のサイズを見つける方法は?」という質問があり、次の解決策が見つかりました。動作しますが、理由はわかりません。 #include <stdio.h> int main() { int a[] = {100, 200, 300, 400, 500}; int size = 0; size = *(&a + 1) - a; printf("%d\n", size); return 0; } 予想通り、5を返します。 編集:人々はこの答えを指摘しましたが、構文は少し異なります、すなわちインデックス方法 size = (&arr)[1] - arr; どちらの質問も有効で、問題へのアプローチが少し異なると思います。多大な助けと徹底した説明をありがとうございました!