#include<stdio.h> int main() { int i, j, max; int flags; int arr[] = { 11, 8, 26, 57, 34, 45, 22, 19 }; int sz = sizeof(arr) / sizeof(arr[0]);//数组元素个数 for (i = 0; i < sz-1; i++)//趟数,一共 sz-1 趟 { flags = 0;// 每次开始冒泡前,初始化 flags 值为 0 for (j = 0; j < sz - i - 1; j++)//每一趟冒泡的过程 { if (arr[j] > arr[j + 1]) //交换两个值 { max = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = max; flags = 1;//不是有序,程序继续执行 } } if (flags == 0) { break;//有序,结束此次循环 } } printf("排序后的数组为:\n"); for (i = 0; i < sz; i++) { printf("%d ", arr[i]); } return 0; }这一行代码int sz = sizeof(arr) / sizeof(arr[0]);是什么意思
时间: 2024-04-28 14:20:25 浏览: 86
这一行代码 `int sz = sizeof(arr) / sizeof(arr[0]);` 的作用是计算数组 arr 的元素个数。在 C 语言中,可以使用 `sizeof` 运算符来计算数据类型或变量所占用的字节数,因此 `sizeof(arr)` 就表示整个数组所占用的字节数,而 `sizeof(arr[0])` 则表示数组中单个元素所占用的字节数。因此,将整个数组所占用的字节数除以单个元素所占用的字节数,就可以得到数组的元素个数。这个操作可以保证在修改数组元素个数时,不需要手动修改数组长度,程序会自动计算元素个数,避免了手动计算出错的问题。
阅读全文