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

标签 c

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

相关文章:

c++ - 将 c 枚举导入到 c++ 类定义

c++ - 图形 gem IV。使用邻域图对二值图像进行细化

c - 学校编程遇到问题

将文本文件中的字符串转换为数字

c - 难以理解函数指针

python - 从Python调用C的hello world

C - 使用递归在邻接矩阵中进行深度优先搜索

c++ - 与宏同名的函数

c - Linux-C 从损坏的共享内存中读取数据

c - 遍历ifaddr的链表