C++问题,为什么输入结果会一样呢?

2026年09月08日 21:08
有3个网友回答
网友(1):

str(...)的返回值是k,所以打印结果肯定是一样的,所以就看两个str执行的先后顺序了,根据我调试的过程来看是从右到左来执行的,这可能和编译器有关系,到底为什么会这样我就不太清楚了。所以这个程序和下面的程序是一样的,这样可以看的更清楚些。
void main()
{
str("wwwww");
str("icehiker");
printf("%s,%s\n",k,k);
}

网友(2):

#include
using namespace std;

char k[100];

char *str(char *s)
{
strcpy(k,s);
return k;
}

void main()
{
printf("%s\n",str("icehiker"));
printf("%s\n",str("wwwww"));
}

这样就不会了

网友(3):

同意二楼的观点 printf函数可能是从右开始执行的 以后尽量避免这种输出方法就行啦