打印" p + p [3] -p [1]"的值

时间:2015-08-06 15:16:28

标签: c string printf

#include<stdio.h>
#include<string.h>

int main()
{
    char c[]="HELLO2014";
    char *p;
    printf("%s\n",p+p[3]-p[1]);
    return 0;
}

C中的上述代码在Answer中输出14。请解释这个怎么样?

1 个答案:

答案 0 :(得分:3)

这是一个技巧。

首先,您的代码段缺少一条语句,您应该添加char *p = c;或直接在c中使用printf

p[3]-p[1]

这些是字符L和E,对应于ASCII代码中的76和69。

所以你的printf变成了

printf("%s\n",p + 7 );

将char数组移动7,从而14