gpt4 book ai didi

c - C 如何计算这个表达式? C指针

转载 作者:太空宇宙 更新时间:2023-11-04 02:33:25 25 4
gpt4 key购买 nike

我不完全理解这一点,有人可以帮我评估下面的表达式吗?如果消息有**,长度只有*,通过*()我们是否取消对 *messagelength 的引用?任何帮助将非常感激。

    bool func(char** message, size_t* length)
{
*(*message + *length) = '\0';
}

最佳答案

*(a + b)a[b] 的另一种写法。上面的语句等同于

(*message)[*length] = '\0';

*message 是一个char* 字符串,*length 是一个大小。它将索引 *length 处的字符设置为 NUL。

额外的指针层没有特别的原因。从每个参数中删除一个 * 并使函数为:

会更正常
bool func(char* message, size_t length)
{
*(message + length) = '\0';
}

或者,换句话说,

bool func(char* message, size_t length)
{
message[length] = '\0';
}

关于c - C 如何计算这个表达式? C指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40558167/

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