C语言萌新,关于数组的问题想请教一下
定义了一个整型数组arrint arr[] = {1,2,3,4,5};
sizeof(arr); // 4 * 5B
printf("%p", arr); // 对应第一个元素 1 的内存地址
printf("%p", arr + 1); // 对应第二个元素 2 的内存地址
所以为什么 arr + 1 的地址是第二个元素的内存地址呢?
而在定义arr的这个作用域内使用sizeof是能正常获取arr的长度,假设作为参数传给某个函数形参接收时,sizeof(形参)得到的又是指针的大小,不太能理解