gpt4 book ai didi

c - 当数组分配给指针时,sizeof 运算符返回不同的值。为什么?

转载 作者:太空宇宙 更新时间:2023-11-04 02:55:44 25 4
gpt4 key购买 nike

<分区>

示例代码:

#include <stdlib.h>
#include <stdio.h>

int main()
{
int arr[5] = {10,20,30,40,50};
int *p;
p = arr;
printf("Total size calculating from array = %ld\n", sizeof(arr));
printf("Total size calculating from pointer = %ld \n",sizeof(p));
return 0;
}

输出:

Total size calculating from array = 20
Total size calculating from pointer = 8

到目前为止,我的理解是您可以将数组的地址分配给相同数据类型的指针,并毫无问题地对其执行所有操作。但是 sizeof 返回不同的值。

所以我在这里有几个问题:

  • 是否分配好的实践?
  • 当我们分配时,哪些事情会发生变化?
  • 为什么是 8 个?

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