对于定义 int arr[] = {1,2,3,4};,编译器自动推导arr的长度为5
int arr[] = {1,2,3,4};
对于定义 char s[] = "hello";,编译器自动推导s的长度为5
char s[] = "hello";
如果定义数组时显式指定了长度,同时给出初始化列表,编译器会用初始化列表的元素个数覆盖指定的长度作为数组实际长度
定义数组时未显式指定长度且提供了初始化列表时,编译器会根据初始化内容自动推导数组的合法长度,推导结果可通过sizeof(arr)/sizeof(arr[0])获取
sizeof(arr)/sizeof(arr[0])