请问大家,第一次循环的时候,是不是只取*target2指针的值而不自增?而*target1++...
#include <stdio.h>#define MAX 1024
int main()
{
char str1; // 确保连接后不越界
char str2;
char *target1 = str1;
char *target2 = str2;
printf("请输入第一个字符串:");
fgets(str1, MAX, stdin);
printf("请输入第二格字符串:");
fgets(str2, MAX, stdin);
// 将指针指向 str1 的末尾处
while (*target1++ != '\0')
;
// 我们希望 str1 最后边的 '\0' 和 '\n' 都被覆盖掉
target1 -= 2;
// 连接字符串
while ((*target1++ = *target2++) != '\0') // (*target1++ = *target2++) ??? 第一次循环的时候,是不是只取*target2指针的值而不自增?而*target1++却取自增后的指针指向的值?
;
printf("连接后的结果是:%s", str1);
return 0;
} 都自增 xieglt 发表于 2020-10-21 11:54
都自增
都自增的话*target2++不就指向str第二个字符了吗 黑眼睛 发表于 2020-10-21 12:27
都自增的话*target2++不就指向str第二个字符了吗
先执行 *target1 = * target2;
再判断 *target1 != '\0'
最后 执行 target1++ 和 target2++
页:
[1]