采用vxcode编写c程序for循环,出现字符串乱码


#include<stdio.h>
int main(void)
{
    char start;
    char lend;
    char number,end;
    lend = 'A';
    end = lend;
    for ( start=lend; start <='U'; start++)
    { 
        for (number = lend; number<=start; number++)
        {
            printf("%c", end);
            end++;
        }
        printf("\n");
    }
    



    getchar();
    return 0;
}

这个代码我自己的理解来说,应该是出现
A
BC
DEF
.
.
PQRSTU
这个情况,但是在编译过程U的后面出现了后续字符,并且在断点查询中发现end=40 '(',不知道哪里出现问题,或者是我理解不对,请解惑。

img

img

一次for()里start <= 'U',二次循环次数太多了,end++ 的值超过了ascii 的上限,修改如下,供参考:

#include<stdio.h>
int main(void)
{
    char start;
    char lend;
    char number,end;
    lend = 'A';
    end = lend;
    for ( start=lend; start <='F'; start++)
    { 
        for (number = lend; number<=start; number++)
        {
            printf("%c(%d)", end,end);
            end++;
        }
        printf("\n");
    }
 
    getchar();
    return 0;
}
/*
A(65)
B(66)C(67)
D(68)E(69)F(70)
G(71)H(72)I(73)J(74)
K(75)L(76)M(77)N(78)O(79)
P(80)Q(81)R(82)S(83)T(84)U(85)
*/

end的值超过了ASCII值的上限(127),所以出现了乱码。