gpt4 book ai didi

c - 为什么第一条指令打印 24,下一条指令打印 8?

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

这是代码:

#include <stdio.h> 

int main()
{
int arr[] = {10, 20, 30, 40, 50, 60};
int *ptr = arr;
printf("Size of arr[] %d\n", sizeof(arr));
printf("Size of ptr %d", sizeof(ptr));
return 0;
}

两者有什么区别printf声明?

最佳答案

查看维基百科文章 sizeof works on arrays 。本质上,它返回存储整个数组所需的字节。在本例中,您有 6 个整数,因此变为 sizeof(int) * 6 = 4 * 6 = 24

但是,第二个 sizeof 正在获取 int 指针的大小。您的 64 位机器有 64/8 = 8 字节指针。请注意,虽然指针和数组在 C 中通常被认为是“相同的”,但这是行为不同的领域之一。

关于c - 为什么第一条指令打印 24,下一条指令打印 8?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57764892/

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