概念

void指针
    数据指针

void指针

void指针的基本概念

void的意思就是“无类型”,void指针则为“无类型指针”,void指针可以指向任何类型的数据。
所以void指针一般被称为通用指针或者泛指针,或者叫做万能指针

void的意思就是“无类型”,void指针则为“无类型指针”,void指针可以指向任何类型的数据。
所以void指针一般被称为通用指针或者泛指针,或者叫做万能指针

定义形式 :
void *p;

**在C语言中在任何时候都可以用void类型的指针来代替其他类型的指针,void指针可以指向任何数据类型的变量**
**如果要通过void指针去获取它所指向的变量值时候,需要先将void指针强制类型转换成和变量名类型想匹配的数据类型指针后再进行操作;**
指针的强类类型转化:
    void  *p;
    int *pa = (int *)p;
    然后才能对原来的void指针指向的空间进行操作
任何类型的指针都可以赋值给void指针,无需进行强制类型转换;
    float f = 1.22f;
    float *p1 = &f;
    p = p1;//将float指针赋值给p

void指针的应用场合:
当进行纯粹的内存操作的时候,或者传递一个指向未定类型的指针时,可以使用void指针;
void* memcpy(void *addr1,void *addr2,size_t n);
该函数只进行纯粹的内存拷贝,包括NULL字符在内的任何内容都将被拷贝

1:对函数参数的限定
2:对函数返回的限定
3:void指针也常用作函数指针

1:对函数参数的限定
2:对函数返回的限定
3:void指针也常用作函数指针

代码如下所示:

#include<stdio.h>

int main(void)
{
    int num1 = 1;
    char char1 = 'b';

/*定义两个void指针类型*/
    void *void_pointer_1;
    void *void_pointer_2;

/*给不同的void指针指向不同的数据类型*/
    void_pointer_1 = &num1;
    void_pointer_2 = &char1;

printf("void_pointer_1:%d,void_pointer_2:%c\n",*((int *)void_pointer_1),*((char *)void_pointer_2));

void_pointer_2 = &num1;
    printf("void_pointer1:%d\n",*((int *)(void_pointer_2)));

float float_1 = 1.25f;
    float* float_pointer = &float_1;
    void* void_float_pointer ;
    /**将float类型指针赋值给void类型指针*/
    void_float_pointer = float_pointer;

printf("float_pointer:%f\n",*((float *)void_float_pointer));

return 0;
}

数据指针

数据指针的概念:
在嵌入式编程当中,可能在特定的内存但愿读写内容,汇编有对应的MOV命令,而除了C/C++以外的编程语言基本上没有直接访问内存的能力
利用数据指针可直接 通过内存地址操作特定的内存

如:在地址0XFF00FF00对应的内存但愿中写入11
unsigned int *p = (unsigned int *)0XFF00FF00;
*p = 11;

如:在地址0XFF00FF00对应的内存但愿中写入11
unsigned int *p = (unsigned int *)0XFF00FF00;
*p = 11;

数据指针操作特定的内存的时候一定要谨慎,不是所有内存都可以操作,必须要对硬件比较了解后,才能进行操作(可能会出现段错误)

代码能够run,如果有需要的话,可以直接拉下来run一下,看看结构体数组是怎么进行初始化操作和使用的。谢谢大家的访问,如有写的不好的地方,希望大家能够及时的提出来,谢谢观看

C语言指针高级部分:void指针和数据指针相关推荐

  1. C 语言编程 — 高级数据类型 — void 类型

    目录 文章目录 目录 前文列表 void 类型 前文列表 <程序编译流程与 GCC 编译器> <C 语言编程 - 基本语法> <C 语言编程 - 基本数据类型> & ...

  2. 四、指针高级应用总结

    四.指针高级应用总结 1 笔试积累 指针数组本质是数组,数组元素全为指针. 数组指针本质是指针,指向的是一个数组. typedef的意义在于简化书写和创造平台无关性. typedef重定义的类型不会原 ...

  3. C++ 数据指针(-)

    C++指针探讨 (一)数据指针 指针,在C/C++语言中一直是很受宠的:几乎找不到一个不使用指针的C/C++应用.用于存储数据和程序的地址,这是指针的基本功能.用于指向整型数, 用整数指针(int*) ...

  4. C 语言编程 — 高级数据类型 — 指针

    目录 文章目录 目录 前文列表 指针 声明一个指针变量 使用指针 空指针 悬空指针 野指针 指针的算术运算 指向指针的指针 将指针作为实际参数传入函数 从函数返回指针 一个古老的笑话 前文列表 < ...

  5. C语言_函数指针高级用法

    什么是函数指针? 函数是计算机程序中一段可执行代码的封装,当程序运行时函数会被加载到内存布局中的代码段位置,这段代码会有一段内存空间,有内存空间就会有地址,这段内存空间的首地址,就是函数的地址 每当我 ...

  6. C语言高级篇 - 1.C语言复杂表达式和指针高级应用

    1.指针数组与数组指针 1.1.字面意思来理解指针数组与数组指针 (1)指针数组的实质是一个数组,这个数组中存储的内容全部是指针变量. (2)数组指针的实质是一个指针,这个指针指向的是一个数组. 1. ...

  7. c语言 万能函数指针,C/C++编程笔记:C语言精华解析之void *指针,指针中的万能指针...

    什么是万能指针? 万能指针其实就是void *类型的指针,而void *指针一般被称为通用指针或叫泛指针.它是C语言关于纯粹地址的一种约定.当某个指针是void型指针时,所指向的对象不属于任何类型. ...

  8. Go 语言编程 — 高级数据类型 — 指针

    目录 文章目录 目录 指针 空指针 双重指针 向函数传递指针参数 指针 一个指针变量指向了一个值的内存地址.类似于变量和常量,在使用指针前需要声明.定义一个指针变量. 声明一个指针变量,格式: var ...

  9. 【C语言】12-指向一维数组元素的指针

    本文目录 一.用指针指向一维数组的元素 二.用指针遍历数组元素 三.指针与数组的总结 四.数组.指针与函数参数 说明:这个C语言专题,是学习iOS开发的前奏.也为了让有面向对象语言开发经验的程序员,能 ...

最新文章

  1. 利用人工智能保护生物多样性
  2. Windows进程与线程学习笔记(七)—— 时间片管理
  3. java程序发布成exe等
  4. 小话设计模式三:发布/订阅模式
  5. BeetleX网关自定义请求日志插件
  6. 【LeetCode笔记】79. 单词搜索 剑指 Offer 12 矩阵中的路径(Java、dfs)
  7. php escapeshellcmd,利用/绕过 PHP escapeshellarg/escapeshellcmd函数
  8. python数据生成pdf,Python生成pdf文件的方法
  9. [洪流学堂]Hololens开发入门篇3:使用基本功能开发一个小应用
  10. 咏南中间件+开发框架中秋国庆大促
  11. ContentServer迁移的几个步骤
  12. 操作系统原理(四)死锁和进程调度
  13. 【TeachNLP】文本数据处理-词表获取
  14. windows系统注册dll文件
  15. 国内外免费sns源码程序大集合
  16. github 迁移google code 项目
  17. 弗曼学习法,你在用吗?
  18. matlab判断系统稳定性 -Nyquist图(极坐标图)判据(还没有搞完。。。。。。。)
  19. 全球与中国LED检查灯市场深度研究分析报告
  20. 基于flex/bison工具生成sysY2022文法的词法/语法分析器

热门文章

  1. 利用二极管的P-N结的I-V特性测量Boltzmann常数
  2. 基于i.MX RT电磁智能车AI算法的一些讨论
  3. 刀塔传奇服务器维护,刀塔传奇360专服合服维护补偿公告
  4. 苹果7支持快充吗_支持苹果20W+华为22.5W快充,倍思发布迷你数显快充移动电源...
  5. java set删除第一个元素_Java面试题10(如何取到set集合的第一个元素)
  6. c语言测试代码怎么写,初学C语言,写了一个测试手速的工具,代码发上来,存着。。...
  7. sql sum条件求和_SQL进阶7外连接(outer join)
  8. linux 软件集成工具箱,在PB中动态修改SQL语句
  9. Oral English 1: A topic about public transportaion in Chicago.
  10. [洛谷P5137]polynomial