我写了两个程序,打印出指针p
指向的变量:
第一个程序:
#include <stdio.h>
int main (void){
int *p;
int a=5, q;
p=&a;
q=*p;
printf("%d", q);
}
第二个程序:
#include <stdio.h>
int main(void)
{
int a=5;
int*p;
p= (int*)&a;
printf("%d", *p);
return 0;
}
我的问题:
这两个程序打印的值a
是5
。但是,第二个程序使用p=(int*)&a;
而不是p=&a;
。有人可以告诉我在(int*)
这里铸造的重要性吗?
强制转换是程序员告诉计算机的一种方法,即使计算机认为某种类型是一种类型,我们也希望将其视为另一种类型。
但是这里的强制类型转换没有用,因为这里的a是一个整数,因此这里的a的地址不需要为整数指针进行强制类型转换。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句