以前从没注意过C语言如何获取数组长度,今天遍写算法时遇到了获取待排序数组长度的问题,特意查了一下:
#include <stdio.h>
#define GET_ARRAY_LEN(array,len) {len = (sizeof(array) / sizeof(array[0]));}
//必须使用宏定义,如果在程序中直接使用,len的值为1
int main() {
int a[] = {1,2,3,4,5,6,7,8};
int len;
GET_ARRAY_LEN(a,len);
printf("%d",len);
}