gpt4 book ai didi

c - c程序中的char**是什么意思,谁能给个正确的解释

转载 作者:行者123 更新时间:2023-12-02 09:24:59 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How do pointer-to-pointers work in C? (and when might you use them?)

(14 个回答)


5年前关闭。




char**在c程序中是什么意思,有人可以给出正确的解释。
我正在查看与函数指针相关的排序指针,它有点令人困惑。

  int compare(const void* a,const void* b)
{
char** sa=(char**)a;
char** sb=(char**)b;
return strcmp(*sa,*sb);
}

最佳答案

C , 一个 char**表示 pointerpointercharacter .

char c;

表示 c是一个字符。
char *cptr;

方法
1. `*cptr` is a character
2. `cptr` is a pointer to a characer
 char **pptr;

方法
1. `**pptr` is a character
2. `*pptr` is a pointer to a character
3. `pptr` is a pointer to a pointer to a character

在你的情况下:
char **sachar **sbpointer to pointer to characters .

并且, *sa*sbpointer to characters .
strcmp需要两个 pointer to characters作为参数,所以你传递了这两个 pointer to characters当您调用 strcmp 时作为:
strcmp(*sa, *sb)

只是,如果你对如何调用这个函数感到困惑,你需要做这样的事情来调用它。
/* Two strings */
char st1[] = {'a', 'b', 'c', '\0'};
char st2[] = {'c', 'b', 'a', '\0'};

/* Call compare */
int ret;
ret = compare((void *) &st1, (void *) &st2);
/* Do something based on value of `ret' */

关于c - c程序中的char**是什么意思,谁能给个正确的解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38559884/

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