gpt4 book ai didi

c - 为什么 sizeof unsigned char array[10] 是 10

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

char的大小是1个字节,维基百科是这样说的:

sizeof is used to calculate the size of any datatype, measured in the number of bytes required to represent the type.

但是,我可以在 unsigned char array[10] 0..10 中存储 11 个字节,但是当我执行 sizeof(array) 时我得到 10 个字节。有人可以解释这种行为吗?

注意:我在 int 数据类型上试过这个,sizeof(array) 是 40,我预计它是 44。

最佳答案

However, i can store 11 bytes in unsigned char array[10]

不,你不能:10 不是 array[10] 的有效索引。数组的索引从零到大小减一。

根据C99标准

6.5.3.4.3 When [sizeof operator is] applied to an operand that has type char, unsigned char, or signed char, (or a qualified version thereof) the result is 1.

这就是为什么在所有符合标准的平台上结果都为 10 的原因。

关于c - 为什么 sizeof unsigned char array[10] 是 10,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18048852/

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