c语言 取参数地址 赋值,C语言中给指定的内存地址赋值(通过指针)

2023-05-16

应用中的实际问题:通过I2C接口发送到MCU一个地址数据(unsigned char AdData),一个待写入数据(unsigned char DaData)。

希望将DaData的值写到MCU内存地址为AdData的寄存器当中。代码如下:

unsigned char * pReg; // 创建一个指针变量

pReg = (unsigned char *) AdData; // 将给定的寄存器地址付给指针

*pReg = DaData; // 赋值

第二行的(unsigned char *)是关键!

由指针概念的规定,这样赋值 unsigned char * pReg = AdData; 是非法的。用第二行这种方法才可以完成此操作。

参考资料:

比如说给出指定的内存地址:0x0012ff7c,然后想给这个内存地址赋值整数 55

都说用:

int *b = (int *)0x0012ff2c;

*b = 55;

这样的方式赋值。

那我想问下如果是这样的方式:

int a=0x0012ff2c;

int *b = (int *)a;

*b = 55;

这样可以么?

我自己试了下是可以的,可是看到有人说是不行的,所以不知道是不是自己试得不对还是他说错了。

所以求教下各位。

以下是我自己试的代码

void main(int argc, char* argv[])

{

int a=0x0012ff2c;

int *b =(int*)a;     //我的理解是:在这a被转换为指向int变量的指针,所以他的内容0x0012ff2c就是a指向的变量的地址

*b=55;

cout<

cout<

cout<

cout<

}

回答:

我自己试了下是可以的,可是看到有人说是不行的,所以不知道是不是自己试得不对还是他说错了。

所以求教下各位。

----------------------------------------------------------

有人说不行指的不是语法不行,语法是没有问题的,但这样指定的一段内存区域,很有可能是一段不能写的内存,这样会产生运行期错误。

就是(int*)a 这个操作,是不是把a转化成了一个指针,指向的就是内存0x0012ff2c 了?

-------------------------------------------------------------------------

不是把a转换成指针,而是把a的值转换成指针,a本身没有任何改变。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c语言 取参数地址 赋值,C语言中给指定的内存地址赋值(通过指针) 的相关文章

  • 海伦公式(求三角形面积)

    已知三角形的三条边长a b c xff0c 求面积s xff1a 海伦公式 xff1a 其中 xff1a double p 61 a 43 b 43 c 2 0 double s 61 sqrt p p a p b p c
  • dma和通道的区别_STM32F407-DMA的FIFO、直接模式等(7)

    Iam 鼎 xff01 DMA框架解析1 DMA框架解析2 DMA框架解析3 源 目标和传输模式 源传输和目标传输在整个 4 GB 区域 地址在 0x0000 0000 和 0xFFFF FFFF 之间 都可以 寻址外设和存储器 这个功能是
  • c语言 get post,简述GET和POST的区别

    表面的区别 1 GET在浏览器回退时是无害的 xff0c 而POST会再次提交请求 2 GET产生的URL地址可以被Bookmark xff0c 而POST不可以 3 GET请求会被浏览器主动cache xff0c 而POST不会 xff0
  • arduino的串口缓冲区_arduino串口通信

    1 串口设置 arduino串口通信 Serial begin 说明 开启串口 xff0c 通常置于setup 函数中 语法 Serial begin speed Serial begin speed xff0c config 参数 spe
  • linux映像文件结构,ROMFS文件系统分析[三]ROMFS映像文件结构

    前面说了我们使用genromfs工具可以生成romfs文件系统 xff0c 那其生成的映像的格式是什么 xff1f 这就要探究romfs文件系统的本质了 1 romfs映像结构使用genromfs生成的romfs格式映像中 xff0c 文件
  • 依据imu姿态角计算z轴倾角_树莓派小车-07-IMU姿态解算 imu_complementray_filter

    上一篇文章介绍了互补滤波器与ROS的接口定义 xff0c 这篇文章将结合论文分析代码 complementary filter cpp 首先从成员变量开始看 xff0c 毕竟这些变量在后面用到的时候需要了解他所代表的意思 xff0c 同时也
  • android 动画 三色流动,Android 三色状态指示进度条 - ThreeColorIndicator

    ThreeColorIndicator 这是一个 Android 三色状态指示进度条 xff0c 常用于指示 xff1a 信号强度 温度等 xff0c 可通过文字 颜色表示一个值的好 一般 差 xff0c 也可以自定义为其它状态 预览图 使
  • stm32串口接收不定长数据_串口发送数据的验证 不定长度多字节的处理4

    最后遗留的一个问题 xff0c 在Modbus RTU的读取功能中就完美解决了 灵光一闪 发送帧的第5字节数据就要要读取的长度 xff0c 响应帧的第3字节数据就是返回数据的长度 xff0c 后面的字节就是返回数据 因为1个寄存器数据是2个
  • m3u直播源_M3U播放列表生成工具

    来源 xff1a 黑鸟博客 快速制作支持 VLC 和 Potplayer 等播放器的 XSPF DPL M3U 等播放列表格式的工具 xff0c 并且可以查重复 xff0c 自定义设置多种选项 所有的播放列表都可以使用普通的文本编辑器 xf
  • js字符串包含另一个字符串_C语言中,在一个字符串中插入另一个字符串(字符)...

    本题可以看做一个字符串拼接问题 需要一个载体数组 includevoid insert array char s1 char s2 int n 思路 1 得到主串s1和子串s22 找到插入位置 3 进行插入 void main char s
  • 华为手机一键解锁工具箱下载 | 华为手机解BL锁软件: 支持解锁bootloader,刷写recovery功能

    文章目录 1 软件介绍2 特色功能3 资源站点4 下载地址5 软件截图6 安装教程7 使用教程7 1 解锁BL 1 软件介绍 通过这款华为手机实用工具箱可以对你的华为手机系列进行刷机 解锁等操作 xff0c 网上这种华为刷机解锁工具比较少
  • python subprocess 实时输出_Python标准库初探之subprocess

    一 subprocess简介 人生苦短 xff0c 我用Python 今天给大家带来一个在Python脚本中启动进程的利器 subprocess 人们都说Python是一个胶水语言 xff0c 可以方便地在多平台上调用其他指令 xff0c
  • 进程内存中堆和栈的区别

    1 概述 在整理数据结构时 xff0c 整理过栈 队列和堆 xff0c 但是在学习进程分布的时候又碰到了 栈和堆 xff0c 初学时很容易把这几个概念给弄混 xff0c 今天有空就给整理一下 2 程序在内存中的分布 程序在内存中的分布如下图
  • C++ Mutable

    1 mutable 含义及常规使用 mutable 英文中表示 xff0c 易变的 xff0c 不定的 xff1b 性情不定的 xff0c 而在代码中表示 可变数据成员 由前面整理的 const详解 知道 xff0c 由const修饰的成员
  • 牛吃草问题

    1 概述 最近碰到一个面试题 xff0c 讲的是牛吃草的问题 xff0c 当时时间短 xff0c 脑袋出现了短路 xff0c 没有给出答案 回来特意查了一下答案 xff0c 发现了一篇比较好的文章 xff0c 现在重新抄写一份 xff0c
  • 开始记录学习中的点滴

    随着年龄的增长 xff0c 除了去了很多地方之外 xff0c 感觉个人没有特别明显的成长 xff0c 对于未来充满了更多的迷茫与困惑 对于程序员的我来说更是感觉到了自己的瓶颈 xff0c 知识储备没有增加多少 xff0c 随着时间的流逝 x
  • C++中Struct与Class的区别与比较

    概述 之前只知道在C 43 43 中类和结构体的区别只有默认的防控属性 xff08 访问控制 xff09 不同 xff0c struct是public的 xff0c 而class是private的 但经过上网查资料才发现 xff0c 除了这
  • 函数调用约定的详解

    概述 在工作的过程中 xff0c 我们总是需要调用底层函数或者使用第三方的库 xff0c 在使用的过程中我就发现了有一些函数前面总有一些 stdcall xff0c 之初我只知道那是调用约定 xff0c 但别人问我什么是调用约定 xff0c
  • #pragma的常用方法讲解

    概述 我们在写代码时 xff0c 总会遇到头文件多次包含的情况 xff0c 刚开始时我们使用宏定义进行控制 xff0c 之后发现有 pragma once这样简单的东西 xff0c 当时是很兴奋 xff0c 以为 pragma就这一种用法
  • C++数组的详细解析

    概述 数组在写程序时经常用到 xff0c 但是对于它和指针的关系 xff0c 自己经常搞混 xff0c 所有抽点时间对数组进行整理 1 数组的概念和使用 数组是用来存储相同类型的变量的顺序集合 所有的数组都是由连续的内存位置组成 最低的地址

随机推荐