#include <stdio.h>
//所以可以使用指针代替数组类型作为函数参数
void printArray(int *array,int length)
{
for (int i = 0; i < length; i++) {
printf("%d ",array); }
printf("\n");
}
int main(int argc, const char * argv[])
{
//当数组作为函数参数传递的时候会自动转换指针类型,这样就造成数组信息遗失,我们没有办法在函数中取得数组的长度信息,所以需要外界传入一个数组长度
int nums[] = {6,8,9,10};
int len = sizeof(nums) / sizeof(int);
printArray(nums,len);
return 0;
}
void test1()
{
//数组名不是一个指针
int nums[] = {1,2,3,4,5};
int *p = nums;
//第一个不同点
// sizeof 计算变量所在存储空间的字节数
int numsLength = sizeof(nums);
printf("%d\n",numsLength);
//指针变量占8个字节存储空间
printf("%lu\n",sizeof(p));
//sizeof(nums) != sizeof(p)
//当一个数组赋值给一个指针变量,有些信息就丢失了,这个称为信息遗失,比如数组长度