gpt4 book ai didi

c - 指针字符的操作顺序

转载 作者:行者123 更新时间:2023-11-30 16:13:02 28 4
gpt4 key购买 nike

在进行迭代时,如果我有以下情况:

while(*pstring)
printf("%c", *pstring++);

它似乎按以下顺序执行操作:

while(*pstring) {
printf("%c", *pstring);
pstring++;
}

或者,换句话说,像这样:

while(*pstring)
printf("%c", *(pstring++));

为什么它不像下面这样:

while(*pstring)
printf("%c", (*pstring)++);

最佳答案

在表达式*pstring++中,您使用了所谓的后增量运算符(++ after变量名)。其作用是首先“评估”表达式,然后递增它。因此,在这种情况下,* 运算符将应用于 pstring 所指向的值递增之前.

另一方面,如果您使用了*++pstring,那么您将使用预增量运算符:值pstring其地址被 * 运算符使用之前会递增。

尝试一下,然后看看(但要小心,当超出字符串末尾时,您可能会遇到未定义的行为)!

关于c - 指针字符的操作顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58177728/

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