专栏首页石头岛空类型指针

空类型指针

空类型指针

malloc 查看底层源码中发现是空类型的指针,空类型的指针可以接收任意类型的指针,但是不能取出指针里的内容,如果要取出内容必须要强转。

1.验证空类型指针,可以接收任意类型指针,但不可以取值
void testVoidPoint() {
    int a = 100;
    void *p = &a;
    printf("%x, %x", &a, p);
    printf("%d", *p);   //error: invalid use of void expression
    getchar();
}
2.通过强转取值

将值强转成对应的指针类型取出

void testVoidPoint2() {
    int a = 100;
    void *p = &a;
    printf("%d", *((int*)(p)));
}
3.开辟空间,证明指针即是动态数组。
void testVoidPoint3() {
    int intSize = sizeof(int);  //得到4,证明 int 是 4 个字节
    printf("%d\n", intSize);
    int *p = (int*) malloc(20 * sizeof(int));   //一开始就使用强转,开辟 20个4字节的空间,80个字节内存
    for (int i = 0; i < 20; ++i){
        p[i] = i;                           //注意,指针本质上也可看成数组。指针的数组下标是可以动态分配的,数组不可以。
        printf("%d,%x\n", &p[i], i);
    }
}
4.指针与动态数组的等价比较
void testVoidPoint4() {
    int intSize = sizeof(int);
    printf("%d\n", intSize);
    int *p = (int*) malloc(20 * sizeof(int));
    for (int i = 0; i < 20; ++i){
        p[i] = i;
        printf("%d,%x\n", p[i], &p[i]);
        printf("%d,%x\n", *(p + i), p + i);
    }
}

p[i] 等价于 *(p + i) &p[i] 等价于 p + i

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 两个原素交换位置

    潇洒
  • idea 设置编译版本无效问题解决

    idea 编译总是1.5处理 使用 idea 时会碰到在 Project Structure 中设置了编译版本为 1.8 时,重新编译过后查看,还是1.5的问题...

    潇洒
  • CommandLineRunner 指定启动顺序

    这个实际是可以用来当用启动时加载某些程序,相当于以前的 static{ } 这种块。这种方式优雅的多。

    潇洒
  • C中值传递与地址传递

    用户5166556
  • 8寒假专辑:五、循环结构​

    int *fun(int *a , int *b) 这里是函数声明的写法,注意数组就是指针

    用户6755376
  • CodeForces 17E Palisection(回文树)

    E. Palisection time limit per test 2 seconds memory limit per test 128 meg...

    ShenduCC
  • hdu-----(1532)Drainage Ditches(最大流问题)

    Drainage Ditches Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/3...

    Gxjun
  • 675. Cut Off Trees for Golf Event

    You are asked to cut off all the trees in this forest in the order of tree’s he...

    用户1147447
  • Super Pow:如何高效进行模幂运算

    今天来聊一道与数学运算有关的算法题目,LeetCode 372 题 Super Pow,让你进行巨大的幂运算,然后求余数。

    帅地
  • POJ 2104 K-th Number(主席树)

    Description You are working for Macrohard company in data structures department...

    attack

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动