gpt4 book ai didi

谁能解释一下它的打印输出是 "ink"

转载 作者:太空狗 更新时间:2023-10-29 15:44:18 25 4
gpt4 key购买 nike

我是 C 中指针的新手。我知道基本概念。在下面的代码中,为什么要打印“墨水”作为输出?

#include<stdio.h>


main()
{
static char *s[]={"black","white","pink","violet"};

char **ptr[]={s+3,s+2,s+1,s},***p;

p=ptr;

++p;

printf("%s",**p+1);
}

谢谢

最佳答案

让我们追踪一下:

ptr = {pointer to "violet", pointer to "pink", pointer to "white", pointer to "black"}

p = ptr --> *p = pointer to "violet"

++p --> *p = pointer to "pink"

这意味着:

*p = {'p','i','n','k','\0'}

这意味着:

**p = 'p'
**p + 1 = 'i'

所以 **p + 1 是指向这个字符串的指针:{'i', 'n', 'k', '\0'},它就是“墨水”

关于谁能解释一下它的打印输出是 "ink",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2461555/

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