[菜鸟求助]达人帮我看下这段C语言代码什么意思啊?
main()
{
char *p= "abcdefgh ",*r;
long *q;
q=(long *)p;
q++;
r=(char *)q;
printf( "%s\n ",r);
}
运行结果:efgh
从q=(long *)p;这句开始,就看不懂了。这是啥意思啊?
达人请指教!谢谢!
[解决办法]
main()
{
char *p= "abcdefgh ",*r;
long *q;
q=(long *)p; //这里将p强制转换为指向long类型的指针,并将指针赋给q
//long类型是4个字节
q++; //q指向e
r=(char *)q; //把q强制转换为指向char类型的指针,并将指针赋给r
//char是1个字节,r指向e
printf( "%s\n ",r);//输出efgh
}