我定义了一个整型变量intm,给intm赋值为4096,然后再定义一个整型指针变量*p1和一个字符指针变量*p2,执行如下操作:
p1=&intm;
printf("%d",*p1);
p2=(char *)p1;
printf("%d",*p2);
p1输出为4096这没有什么问题,但我以前一直认为p2应该与p1同值,只是仅输出了intm的高位字节即16
,但机器p2输出了10,不是16,请问,这是为什么?
我这样:
void *lp;
p1=&intm; lp=(void *)p1; p2=(char *)lp;p2好像输出的也不是16,我觉得这样应该可以了啊,可还是不行。
以上两个问题谁能解答一下?先谢谢了!
把
cout<<p2<<"\n";
改为
cout<<(int) *p2<<"\n";
直接输出p2,p2是个char型指针,输出结果是什么???
若写成
cout<<*p2<<"\n";
由于*p2 = 0;屏幕上将什么也没有.