c语言 只出现了代码中前置++ 与后置++的不同 却导致打印失败
查看原帖
c语言 只出现了代码中前置++ 与后置++的不同 却导致打印失败
754906
bk492511楼主2022/10/8 10:42

正好打着这个题 想练练用scanf函数循环输入单个字符 用的是 do while 循环,我寻思在表达式那里直接就把循环数给递增了,(毕竟是无比自由的c语言),但前置++可以正常输出,后置++就不行,我试着分析了下,没分析明白,大佬求解!!

int 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;
}

下面是后置++ 方便大佬测试

int 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的括号里写 我倒是写出来了,就是想知道这里的前置 和后置 差在哪了(还是我的编译器有问题。。 再感谢一次大佬!!!

2022/10/8 10:42
加载中...