嵌入式学习——C语言指针(一)

news2025/1/13 3:01:35

一、地址和指针的概念

地址:内存单元的编号。

指针:一个变量的首地址就叫做该变量的指针。

1、内存中存取数据的方式

        1)直接存取

                直接用变量名存取变量所占内存单元的内容

                例:                 

int y,x = 3;
y = 3*x+2;
        2)间接存取

                首先从存放变量地址的指针变量中取得该变量的存储地址,然后再从该地址中存取该变量值。在这种存取方式中,存取变量的值是通过存取指针变量所“指向” 的内存单元中的内容。在此,所谓“指向”,是通过地址来体现的。

                例:       

int a;        //定义了一个变量a
int *p = &a;  //对a这个变量取到它的内存编号(即地址)
*p = 3;       //对这个地址上的内存单元给值为3

                由以上可知:指针变量的值为地址,普通变量的值为数据。

指针变量:用于存放其他变量地址的变量。

二、定义指针变量

        1、一般形式:基本类型标识符  *指针变量名;

        注意: 

                (1)指针变量名前的“*”只表示该变量为指针变量,以便区别于普通变量的定义,而指针变量名不包含该“*”。

        例如:  int  x,*s;   说明了s是一个指针变量,但不能说*s是指针变量。

                 (2)定义指针变量时必须指明基类型。一个指针变量不能忽而指向整型,忽而又指向实型。因为,不同类型的变量所占的字节数是不同的。

        2、指针变量赋值时要注意以下几点:

                (1)指针变量中只能存放地址,而不能将数值型数据赋给指针变量。

                (2)赋给指针变量的变量地址不能是任意的类型,而只能是与指针变量的基类型具有相同类型的变量的地址。

                例如,下面的赋值是错误的∶

                         float  a; int  * pointer_1; /*声明了指向整型变量的指针变量*/

                         pointer_1=&a; /*指向整型变量的指针变量里存放了实型变量的地址*/ 

                (3)与一般的变量一样,也可以对指针变量进行初始化。

                        例如:    int  x,*p=&x; *p=5;

三、引用指针变量

        1、若声明了 int a,*p; 则在引用指针变量时,可能有三种情况:

                (1)给指针变量赋值。如:p=&a;

                (2)引用指针变量的值(a的地址)。如:printf(“%p”,p);

                (3)引用指针变量指向的变量(a的值)。 如:printf(“%d”,*p);

        2、两个有关运算符的使用:

                (1)&  取地址运算符。 &a是变量a的地址。

                (2)*  指针运算符 (或称“间接访问”运算符),*p是指针变量p指向的对象的值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1959391.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【日记】今天又是哪朵小云不开心了呀(1886 字)

正文 上午上班没多久,天就特别阴,感觉像是要下暴雨的样子。前台接了一个电话,家里人打来的,她妈妈叮嘱她,要注意一点。他们那边已经开始下了。她转过头对我笑笑说,原来下雨在一个城里也能不同步。 当时我笑…

AttributeError: ‘NoneType‘ object has no attribute ‘shape‘

AttributeError: ‘NoneType‘ object has no attribute ‘shape‘ 目录 AttributeError: ‘NoneType‘ object has no attribute ‘shape‘ 【常见模块错误】 【解决方案】 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页,我是博主英杰…

多家隧道代理价格:阿布云、快代理、小象代理、熊猫代理和亿牛云……

随着奥运的热度攀升,各大品牌也在抓紧时机赶上这波奥运热潮,随之而来的大量数据信息收集和分析工作也接踵而至,在这一数据采集过程中,HTTP代理的质量和价格对企业的效率和成本调控重要性不言而喻。我们大部分人在日常购买产品的时…

2235234234

作者主页: 作者主页 本篇博客专栏:C 创作时间 :2024年6月20日 最后: 十分感谢你可以耐着性子把它读完和我可以坚持写到这里,送几句话,对你,也对我: 1.一个冷知识: …

细说MCU的DAC1实现两个通道同时输出的方法

目录 一、参考硬件 二、 建立新工程 1.配置DAC 2.配置DMA 3.配置定时器 4.配置时钟和Debug 三、修改代码 1.初始化定时器和DAC 2.定义波形数据 3.波形数据的产生方法 四、查看结果 一、参考硬件 本项目依赖的软件和硬件工程参考本文作者写的文章: 细说MC…

手写RPC框架,与Spring整合,基于Netty作为网络框架,protobuf作为序列化协议。可以和实际项目相结合完美运行

注:由于RPC框架过于庞大所以本篇文章只是作为阅读RPC源码的一个指导,设计精巧之处还需要各位读者结合源码进行实践 RPC源码地址:https://github.com/xhpcd/rpc git clone: https://github.com/xhpcd/rpc.git 如果觉得有收获麻烦留下一颗st…

使用 Easysearch 打造企业内部知识问答系统

大家可能都有这样的经历,刚入职一家企业时,同事往往会给你分享一些文档资料,有可能是产品信息、规章制度等等。这些文档有的过于冗长,很难第一时间找到想要的内容。有的已经有了新版本,但员工使用的还是老版本。 基于…

centos7-8/redhat7-8一键安装配置vsftp服务

1.脚本介绍 1.1.介绍: linux下一键安装及配置vsftpd服务 ,通过执行install.sh脚本,脚本会根据参数区域的值执行安装和配置vsftp服务,安装后会创建一个默认ftp用户wangxf密码wangxf2023 1、支持自定义安装(更改脚本内参数值) 2、…

javaweb_01:http

一、什么是http HTTP 是一个简单的请求-响应协议,它通常运行在TCP之上,它指定了客户端可能发送给服务器什么样的消息,以及得到什么样的响应。请求和响应都是以ASCll码的形式给出;而消息内容则具有一个类似MIME的格式。这个简单模…

面试Redis篇

本篇主要总结一下面试官可能会在Redis上询问的主要问题。 Redis的使用场景 问:你的项目中哪些场景中用到了Redis? 答:根据你的项目回答,一般会在一下几个部分缓存、分布式锁...... 缓存 缓存穿透 查询一个不存在的数据&#xff…

黑马点评--给店铺类型查询添加缓存

controller/ShopTypeController.java /*** 店铺分类查询,用于展示首页头部店铺分类* return*/GetMapping("list")public Result queryTypeList() {return typeService.queryList();} service/IShopTypeService.java Result queryList(); service/impl/S…

4234324

作者主页: 作者主页 本篇博客专栏:C 创作时间 :2024年6月20日 最后: 十分感谢你可以耐着性子把它读完和我可以坚持写到这里,送几句话,对你,也对我: 1.一个冷知识: …

alg-in-go-1:动态连通性问题

前言: 有本算法书叫:Algorithms 4th Edition.pdf,它是用java实现的,但是算法的内核是一样,不在乎于语言,考虑到java当今的…, 咱们尝试用golang学习算法. 问题: 思考🤔&#xff…

弹幕背后:B站UP主创作服务解析

引言 在B站,每一条飘过的弹幕都是一个故事的碎片,它们汇聚成一幅幅生动的社交画卷。这里,不仅仅是一个视频分享平台,弹幕背后更是一个充满活力的创作者生态系统。B站以其独特的弹幕文化,为创作者和观众之间搭建起了一座…

【电控笔记-xuan】各种估测器扰动估计性能比较

各种扰动观测器观测结果 蓝色: 扰动值 隆博戈估测器扰动补偿 论文53disturb扰动补偿 2order eso 观测

《系统架构设计师教程(第2版)》第13章-层次式架构设计理论与实践-01-层次式体系结构概述

文章目录 1. 常用层次是架构2. 层次式架构设计的注意点2.1 污水池反模式2.2 应用变得庞大 本章教材又赘述了一遍架构的定义和层次架构风格的概述,我之前的笔记都写了 架构的定义回看《第7章-系统架构设计基础知识-01-软件架构(Software Architecture&…

AD的问题

连续放置同规则元件:先选择再按Tab编辑放置; 拖动元件:(shift 空格 :旋转元件;原理图中按x水平,按y垂直翻转)按ctrl键可以丝滑流畅放置 测试距离:RM 距离单位转…

初学Mybatis之动态 SQL

动态 SQL 是指根据不同的条件生成不同的 SQL 语句 动态 SQL 详情请看链接 搭建环境: mysql 建立博客表 CREATE TABLE blog(id VARCHAR(50) NOT NULL COMMENT 博客id,title VARCHAR(100) NOT NULL COMMENT 博客标题,author VARCHAR(30) NOT NULL COMMENT 博客作者…

华为od机试真题:悄悄话(Python)

2024华为OD机试(C卷D卷)最新题库【超值优惠】Java/Python/C合集 题目描述 给定一个二叉树,每个节点上站一个人,节点数字表示父节点到该节点传递悄悄话需要花费的时间。 初始时,根节点所在位置的人有一个悄悄话想要传…

windows家庭版安装Hyper-V

uniapp开发鸿蒙需要开启Hyper-V,但家庭版默认没有,去网上搜索整理了一下。 1.检查是否安装过Hyper-V 直接搜索 Hyper-V,如果出现就代表有,如果没出现,就搜索 启用或关闭windows功能 。 如果有Hyper-V这一项&…