【发布时间】:2011-06-16 10:10:38
【问题描述】:
这是一个正在运行的程序
#include<stdio.h>
int main ()
{
char c[]="GATE2011";
char *p=c;
printf("%s",p+p[3]-p[1]);
}
输出是
2011
现在问题来了,我无法理解操作 p+p[3]-p[1] 那是什么意思?
我的理解是当我声明类似的东西时
char c[]="GATE2011"
那么c是指向字符串常量的指针,字符串以G开头。
在下一行*p=c;
指针 p 指向的地址与 c 指向的地址相同。
那么上面的算法是如何工作的呢?
【问题讨论】: