gpt4 book ai didi

C编程为什么char数组的地址从0012FF74递增到0012FF75?

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

代码如下:

    char chararray[] = {68, 97, 114, 105, 110}; 
/* 1 byte each*/
int i;
printf("chararray intarray\n");
printf("-------------------\n");
for(i = 0; i < 5; i++)
printf("%p\n", (chararray + i));

输出:

    chararray
---------
0012FF74
0012FF75
0012FF76
0012FF77

现在我试图用十六进制、位和字节来理解这一点。

我知道一个 char 是 1 个字节,它应该增加 1 个字节,即 8 位。

但我不明白它的十六进制怎么只增加1? 1十六进制只代表4位正确吗?所以我有点困惑,它似乎只增加了 4 位。

非常感谢任何有关解决此问题的帮助,谢谢!

最佳答案

确实,如果用十六进制表示一个字节,那么它是由 2 个十六进制数字组成,其中每个数字代表 4 位。但是,您看到的地址是字节地址,而不是它们的内容。每个字节接收自己的地址,并且地址是连续的,就像我们给每个字节一个数字一样:字节0,字节1,字节2,字节3,......

关于C编程为什么char数组的地址从0012FF74递增到0012FF75?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44509260/

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