以下代码的输出是4.不应该0吗?
由于a已声明且未定义,因此未为其分配内存.
#include <stdio.h>
#include <stdlib.h>
int main()
{
extern int a;
printf("%ld",sizeof(a));
return 0;
}
Run Code Online (Sandbox Code Playgroud) int main(void){
int arr[] = {1, 2, 3, 4, 5, 6};
printf("%p\t%p\t%d\n",arr,arr+1,(arr+1)-arr);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出:
0x7ffe583f4ba0 0x7ffe583f4ba4 1
Run Code Online (Sandbox Code Playgroud)
为什么差异1?不应该是4.