p[0] =(int*)&data是什么意思?, (int*)与(int)*的区别

(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

猜你喜欢

转载自blog.csdn.net/ericanxuanxuan/article/details/115727563