C语言--无类型指针

简单的小例子:

#include <stdio.h>

int main(){

    void *data = "Hello World";//一个无类型指针代替所有的类型,这里是存储字符型数据

    printf("%s\n",data);//将其输出
    return 0;
}

下面是无类型指针,访问是一个字节一个字节的访问的。

#include <stdio.h>
#include <stdlib.h>

int main(){

    void *data = malloc(8);//一个无类型指针代替所有的类型

    printf("%ld\n",sizeof(data[0]));//没有创建具体的数据类型,访问的时候是一个字节一个字节访问的。
    free(data);//记得释放内存
    return 0;
}

输出

1

下面创建一个整型数据类型,在访问时将输出4,即整型的数据长度来访问。

#include <stdio.h>
#include <stdlib.h>

int main(){

    void *data = malloc(8);//一个无类型指针代替所有的类型
    int *intData = data;//为其指定一个整型的数据类型

    printf("%ld\n",sizeof(intData[0]));//输出其数据尺寸
    free(data);//记得释放内存
    return 0;
}

输出

4

空指针并赋值

#include <stdio.h>
#include <stdlib.h>

int main(){

    void *data = malloc(8);//一个无类型指针代替所有的类型
    int *intData = data;//为其指定数据类型
    intData[0] = 10000;

    printf("%d\n",intData[0]);//输出其值
    free(data);//记得释放内存
    return 0;
}

输出

10000
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页