社区讨论
c语言 只出现了代码中前置++ 与后置++的不同 却导致打印失败
P1321单词覆盖还原参与者 3已保存回复 5
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 5 条
- 当前快照
- 1 份
- 快照标识符
- @lo7v12gr
- 此快照首次捕获于
- 2023/10/27 08:13 2 年前
- 此快照最后确认于
- 2023/10/27 08:13 2 年前
正好打着这个题 想练练用scanf函数循环输入单个字符
用的是 do while 循环,我寻思在表达式那里直接就把循环数给递增了,(毕竟是无比自由的c语言),但前置++可以正常输出,后置++就不行,我试着分析了下,没分析明白,大佬求解!!
Cint main()
{
char c_A[256]={};
int cir=0;
do
{
scanf("%c",&c_A[cir]);
}
while(c_A[cir]!='\n' && ++cir);//就是这里
for(cir--;cir>=0;cir--)
{
printf("%c",c_A[cir]);
}
return 0;
}
下面是后置++ 方便大佬测试
Cint main()
{
char c_A[256]={};
int cir=0;
do
{
scanf("%c",&c_A[cir]);
}
while(c_A[cir]!='\n' && cir++);
for(cir--;cir>=0;cir--)
{
printf("%c",c_A[cir]);
}
return 0;
}
这个 括号内 逻辑与 后面的cir自增 我理解它不是前置后置都可以 也不影响啥。。。。我这个想法是不是错了。。
不在这个while的括号里写 我倒是写出来了,就是想知道这里的前置 和后置 差在哪了(还是我的编译器有问题。。
再感谢一次大佬!!!
回复
共 5 条回复,欢迎继续交流。
正在加载回复...