gpt4 book ai didi

c - c中同一个变量的后自增运算符和预自减运算符

转载 作者:行者123 更新时间:2023-11-30 18:43:11 25 4
gpt4 key购买 nike

Possible Duplicate:
Why ++*p++ works while ++i++ does not?

这在c中可能吗?如果不能,原因是什么?

int main()
{
char *p="hai friends";
while(*p!='\0')
{
++*p++;
printf("%c\n",*p);
}
}

最佳答案

这个特定的例子

char *p="hai friends";
while(*p!='\0')
{
++*p++;
printf("%c\n",*p);
}

尝试修改字符串文字,因此是未定义的行为。但一般来说,对于指针,你可以这样做

++*p++;

因为后增量和前增量指的是不同的实体。后递增递增指针,而预递增则递增指向的值。

在同一实体上使用前后递减将再次导致未定义的行为,因为这会在不干预序列点的情况下修改变量两次。

关于c - c中同一个变量的后自增运算符和预自减运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11389563/

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