行int sz = sizeof(arr) / sizeof(arr[0]); 用于计算数组arr中元素的数量。表达式sizeof(arr)给出数组的总大小(以字节为单位),sizeof(arr[0])给出数组中一个元素的大小。将总大小除以一个元素的大小即可得到数组中元素的数量。
这是对这行代码的分解:
sizeof(arr):这给出了数组arr的总大小,以字节为单位。sizeof运算符返回其操作数的大小,以字节为单位。在这种情况下,它是数组的总大小,即元素数量乘以每个元素的大小。
sizeof(arr[0]):这给出了数组arr中一个元素的大小。在这种情况下,它是一个整数的大小,因为数组的类型是int。
sizeof(arr) / sizeof(arr[0]):这个表达式通过将数组的总大小除以一个元素的大小来计算数组中元素的数量。结果是一个代表数组中元素数量的整数。
这种技术通常用于C语言中,以一种与元素的具体数据类型无关的方式获得数组中元素的数量。这确保了如果数组的数据类型发生变化,你不需要更新元素数量的计算。”