You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言puts()与字符指针操作打印空行问题咨询

问题1:为什么puts(pB)仅输出空行

*pB ++ = *pA ++的执行逻辑是:先将当前pA指向的字符拷贝到pB指向的内存地址,再将两个指针分别向后移动1位。
全局字符数组strB默认初始化全为\0,拷贝完成后pB已经移动到了刚写入字符的下一个位置,该位置的初始值就是\0。puts碰到\0会判定字符串结束,因此只会打印空内容,加上puts默认自带的换行符,最终表现就是仅输出空行。
如果要实现「每拷贝一个字符就打印一次当前strB的完整内容」的需求,将line c替换为puts(strB)即可。

问题2:替换为puts(pA)能否逐次打印strA剩余内容

可以,符合你的预期。
拷贝完成后pA会指向原字符串中当前刚拷贝字符的下一个位置,此时调用puts(pA)就会打印从该位置到原字符串末尾的内容,每循环一次打印的内容就少一个开头字符,直到最后pA指向原字符串的终止符\0时,会打印一次空内容,之后循环判定*pA != '\0'不成立,循环结束。

内容的提问来源于stack exchange,提问作者claud

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 15:39:04