#include<stdio.h>
main()
{
int arr[]={2, 3, 4, 1, 6};
printf("%u, %u, %u\n", arr, &arr[0], &arr);
return 0;
}
它的输出是:- 1200 1200 1200 我想知道它的答案是1200?
我想知道它是如何工作的?
最佳答案
arr &arr[0] 和 &arr 都给出了数组的地址。
但是数组的地址不一定是整数,因此您的 printf 会导致未定义的行为。
正确的方法是:printf("%p\n",(void *)arr);
。实际输出取决于您的实现,并且对于 C 编程的任何目的来说很可能毫无意义。
关于c - 如果内存中的数组从 1200 开始,程序的输出是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39993648/