gpt4 book ai didi

c - C 中的 sizeof 数组元素

转载 作者:太空宇宙 更新时间:2023-11-04 08:11:00 24 4
gpt4 key购买 nike

C 中,数组元素被视为指针。所以表达式 sizeof(arr)/sizeof(arr[0]) 变成 sizeof(int *)/sizeof(int) 结果是 1 那么为什么下面的程序输出的是 12 11

#include <stdio.h>

int main()
{
int n1, n2;
char arr1[] = "Hello World";
char arr2[] = {'H','e','l','l','o',' ','W','o','r','l','d'};
n1 = sizeof(arr1)/sizeof(arr1[0]);
n2 = sizeof(arr2)/sizeof(arr2[0]);
printf("n1 = %d\nn2 = %d\n", n1, n2);
return 0;
}

最佳答案

array elements are treated as pointers

这不是真的。数组不是指针。但是当传递给函数时,它们会衰减为指向第一个元素的指针。而sizeof(array)是整个数组占用的字节数。

关于c - C 中的 sizeof 数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39490684/

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