gpt4 book ai didi

c - 打印 ("ABCD"); printf ("ABCD"+1);

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

void main()

{

printf("ABCD");

printf("\n");

printf("ABCD" +1);

printf("\n");

printf("ABCD" +3);

}

输出是:

ABCD

BCD

D

谁能解释一下为什么?

最佳答案

"ABCD" 实际上是一个字符数组 {'A','B','C','D', '\0'}(其中'\0' 是尾随的空字节)。如果将其加 3,则相当于将指针从 A 向前推进 3 个字节,因此您最终指向 D

问题 6.2 in the C FAQ有一张图片使这一点更清楚。数组衰减为指针,如 6.4 中所述所以你有变量 p 的情况。

char a[] = "hello";
char *p = "world";

Picture from C FAQ

关于c - 打印 ("ABCD"); printf ("ABCD"+1);,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6511917/

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