gpt4 book ai didi

c - 取消引用指针数组

转载 作者:太空宇宙 更新时间:2023-11-04 05:32:35 28 4
gpt4 key购买 nike

我在思考这个简单的取消引用语句时遇到了一些麻烦。

我已经尝试打印 **names,然后我得到了我希望从 *names -- 'C' 得到的结果。但是,*names 给了我 'D'

#include <stdio.h>


int main(void)
{
char *names[] = {"Carl", "David", "Gibson", "Long", "Paul"};
printf("%c\n", *names);

return 0;
}

控制台打印出'D'。我不确定为什么 *names 生成的 char 不是第一项 'C' 的第一个字母。

最佳答案

这是未定义的行为,输出因编译器而异。
当我用 gcc 运行它时,没有输出。使用 **names 打印“C”。
未定义的行为是因为错误的格式说明符。您使用%c,但*names 指向数组中的第一个元素,即存储“Carl”的字符数组。
使用 %s 格式说明符打印字符串。

printf("%c\n", *names);

关于c - 取消引用指针数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56214392/

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