我已经了解到,当我们将数组名称传递给sizeof时,数组的名称不会衰减到指向基址的指针.下面的代码通过给出答案10来验证这一事实.
#include <stdio.h>
int main(){
int arr[10];
printf("Size of array is %d" , sizeof(arr)/sizeof(int));
return 0;
}
Run Code Online (Sandbox Code Playgroud)
然而,当我运行下面的代码时,答案是1.无论维度是否是原型编写,答案都是1.为什么会这样?
#include <stdio.h>
void dimension(int arr[]){
printf("Sizof array is %d" , sizeof(arr)/sizeof(int));
}
int main(){
int arr[10];
dimension(arr);
return 0;
}
Run Code Online (Sandbox Code Playgroud)