【发布时间】:2014-02-03 02:41:55
【问题描述】:
我不明白else语句*nombre=(*nombre)++的意义何在。
输出显示"fernando",我认为它会显示"ffsoboep",因为总和。但似乎*nombre=(*nombre)+1 与*nombre=(*nombre)++; 不同
我的问题是为什么会这样?在这种情况下,“++”运算符如何工作。谢谢。
void recursiva (char * nombre)
{
if (*nombre != '\0')
{
recursiva(nombre+1);
if(*nombre > 'A' && *nombre < 'Z')
{
*nombre=*nombre | 32;
}
else
{
*nombre=(*nombre)++;
printf("%c \n",*nombre);
}
}
}
int main()
{
char nombre[]="Fernando";
recursiva(nombre);
printf("%s",nombre);
}
【问题讨论】:
-
你为什么写
*nombre=(*nombre)++;?写作只是自找痛苦。 -
听起来你只是想要
(*nombre)++。 -
@rullof:
(*nombre)++在我尝试时效果很好。 -
我也无法理解阿爸自己的歌曲“费尔南多”。
-
检查序列点。
*nombre=(*nombre)++;是 UB。