我在C语言中实现了插入排序,一个正在帮助我的人告诉我做一个指针,如末尾的下一行所示,但是为什么?
size_t size = sizeof( array ) / sizeof( *array );
为什么第二个指针指向数组,size_t做什么?
sizeof(array)
=整个数组的大小,以字节为单位;
[sizeof(*array)
=数组中第一项的大小,以字节为单位;
由于C数组中的项目具有统一的大小,将第一个除以第二个将得到数组中的项目数。
size_t
是一个无符号整数,其大小足以存储计算机dan存储在内存中的任何项目的大小。因此,通常,它与unsigned int
相同,但不能保证是相同的,并且它具有语义价值,因为它是另一回事。
为什么第二个是指向数组的指针
示例1字符a [5];sizeof(a)= 5sizeof(* a)= 1
因此,大小= 5/1 = 5 //这表示数组中的元素数没有]
示例2int a [5];sizeof(a)= 20sizeof(* a)= 4
因此,size = 20/4 = 5 //这表示数组中的元素数
size_t会做什么?