gpt4 book ai didi

c - 如果内存中的数组从 1200 开始,程序的输出是什么?

转载 作者:行者123 更新时间:2023-11-30 19:11:28 25 4
gpt4 key购买 nike

 #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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com