首页 > 解决方案 > C语言指针和数组

问题描述

#include <stdio.h>

int main()
{
    char c[]="PRODUCTION 2019";
    char *p=c;
    printf("%s",p+p[3]-p[5]);

    return 0;
}

我不明白输出如何RODUCTION 2019。有人可以详细解释一下吗?

标签: carrayspointers

解决方案


因为p[3]is'D'p[5]is 'C'then p[3]-p[5]is 1整个表达式p+p[3]-p[5]只是p + 1


推荐阅读