(int*)与(int)*的区别
直接上代码:
/**
* 功能:测试 p[0] =(int*)&data, 与(int)*data的区别
*/
void test_int_point() {
//(int*)&a
printf("=====================test (int*)&a===================\n");
int a = 15;
int* p[3] = {
NULL };
p[0] = (int*)&a;// p[0] =(int*)&a 这里可以理解为,p[0]此时为指向a的整形指针,
//如果进行*(p[0])操作就是读取a的值
printf("a:%d\n", a);
printf("*p[0]:%d\n\n", *p[0]);
//(int)*data 测试 (int)*p 就是(int)(*p)
printf("=====================test (int)*p ===================\n");
float b = 1.23;
float* m = &b;
int n = (int)*m;//表示取b的值,并强制转换为整数类型
printf("b : %f\n*m:%f\nn:%d\n", b, *m, n);
}
/**
* 主函数 main
* 功能:测试相关代码
*/
int main() {
test_int_point();
system("pause");//实际运行时,为保证看到实验效果需要加上该句,表示代码停在这里
return 0;
}
测试结果:
Made by : Hai