作业帮 > 综合 > 作业

这个结果为什么是"ent" ..谁能给个具体解答啊..还有p3=(long *)p1 这句咋转型的.

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/17 01:36:47
这个结果为什么是"ent" ..谁能给个具体解答啊..还有p3=(long *)p1 这句咋转型的.
main()
{
char *p1="student",*p2;
long int *p3;
p3=(long *)p1;p3++;
p2=(char *)p3;
printf("%s\n",p2);
}
还有p3=(long *)p1将p1这个函数强制转换为长整型然后赋给p3.
指针自加操作是对自身类型的自加,比如说你对一个char指针自加,那么他的地址会加1个字节..如果对一个 long自加,就会加4个字节.你换为long后又p3++;所以是加了4个字节,所以结果输出了第5个字符后面的字符.
p3=(long *)p1;p3++;
上面两句其实可以看做是
p1=p1+4;