C语言—指针读写

简介: 主要介绍了如何利用指针实现读写操作。


🎀 文章作者:二土电子
🐸 期待大家一起学习交流!


PS:本人之前对于指针的了解基本为0,更是没有实际使用过指针,后来在开发中学习到了利用指针在固定地址读取或者写入数据的方法,以及利用指针提取数组的方法,这里简单分享一下,手法可能有些粗陋,如果有大佬有其他方法欢迎留言交流。

1 利用指针读取单个数据

这里依旧是惯例,直接上代码。

    int *ptest = (int*)0x20010800;   // 定义一个指针,指向需要操作的地址
    int test = 0;   // 定义一个变量,用来读取操作地址的值

    test = *(ptest);   // 读取ptest指向地址的值

上述程序需要注意的是指针变量的类型需要和要读取的数据类型相同。其次如果只是需要做判断的话可以直接像下面这样写。

    if (*(ptest) > 10)   // 判断条件
    {
   
        // 需要执行的内容
    }

2 利用指针读取数组

利用指针读取数组的应用场景一般是只知道数组的首地址和长度的情况,比如说利用DMA将一些数据搬运到SRAM区的某个地方,只知道首地址和长度需要读取出来。

假设数组首地址为0x20010800,长度为200,数据类型为int型,现在需要将这200个数据读取出来,程序如下。

    int *ptest = (int*)0x20010800;   // 需要读取的数组的首地址
    int a[200];   // 用来存储读取到的200个数的数组
    int i = 0;   // 循环变量

    for (i = 0;i < 200;i ++)
    {
   
        a[i] = *(ptest + 1);
    }

这里加1的含义是从首地址往后32位的下一个地址,具体是几位与指针类型有关。如果指针为16位,那么加1就代表往后推16位,指针为8位,加1就代表往后推8位。

3 利用指针往固定地址写入值

说完了如何利用指针读取数据和数组,接下来说一下如何利用指针往固定地址写入值,程序如下。

    int *ptest = 0x20010800;   // 指向要操作的地址的指针变量

    *ptest = 10;   // 往需要操作的地址写入值

指针虽好,但是实际应用时很可能会出现问题,尤其是把指针当作返回值时,所以大家在使用指针时还是要考虑到它可能带来的风险。

相关文章
|
2月前
|
存储 编译器 C语言
【C语言】【指针1】指针难?看这个就够了!
【C语言】【指针1】指针难?看这个就够了!
|
23天前
|
存储 C语言
【C语言基础】一篇文章搞懂指针的基本使用
本文介绍了指针的概念及其在编程中的应用。指针本质上是内存地址,通过指针变量存储并间接访问内存中的值。定义指针变量的基本格式为 `基类型 *指针变量名`。取地址操作符`&`用于获取变量地址,取值操作符`*`用于获取地址对应的数据。指针的应用场景包括传递变量地址以实现在函数间修改值,以及通过对指针进行偏移来访问数组元素等。此外,还介绍了如何使用`malloc`动态申请堆内存,并需手动释放。
|
26天前
|
存储 人工智能 C语言
C语言程序设计核心详解 第八章 指针超详细讲解_指针变量_二维数组指针_指向字符串指针
本文详细讲解了C语言中的指针,包括指针变量的定义与引用、指向数组及字符串的指针变量等。首先介绍了指针变量的基本概念和定义格式,随后通过多个示例展示了如何使用指针变量来操作普通变量、数组和字符串。文章还深入探讨了指向函数的指针变量以及指针数组的概念,并解释了空指针的意义和使用场景。通过丰富的代码示例和图形化展示,帮助读者更好地理解和掌握C语言中的指针知识。
|
2月前
|
C语言
C语言------指针
这篇文章是关于C语言中指针的实训,通过示例代码展示了指针的基本概念、定义、赋值、使用和传递,以及指针运算和指针在函数参数中的应用,如交换两个变量的值和找出两个数中的较小值。
C语言------指针
|
1月前
|
存储 安全 C语言
C语言 二级指针应用场景
本文介绍了二级指针在 C 语言中的应用,
|
2月前
|
存储 编译器 C语言
【C语言篇】深入理解指针2
代码 const char* pstr = "hello world."; 特别容易让初学者以为是把字符串 hello world.放 到字符指针 pstr ⾥了,但是本质是把字符串 hello world. 首字符的地址放到了pstr中。
|
2月前
|
存储 程序员 编译器
【C语言篇】深入理解指针1
assert.h 头⽂件定义了宏 assert() ,⽤于在运⾏时确保程序符合指定条件,如果不符合,就报错终⽌运⾏。这个宏常常被称为“断⾔”。
|
2月前
|
存储 搜索推荐 C语言
C语言中的指针函数:深入探索与应用
C语言中的指针函数:深入探索与应用
|
2月前
|
存储 编译器 C语言
【C语言】指针练习题目
【C语言】指针练习题目
|
2月前
|
C语言 Python
C语言指针(2)
C语言指针(2)
25 5