C语言学习记录(十一)——指针基本知识及运算

文章目录

  • 前言
  • 1. 指针的概念
  • 2.指针变量的说明
  • 3. 指针的含义
  • 4. 指针运算
    • ①指针加减:
    • ②指针的关系运算符


前言

一个学习嵌入式的小白~ 有问题评论区或私信指出~

提示:以下是本篇文章正文内容,下面案例可供参考

1. 指针的概念

在C语言中,内存单元的地址称为指针,专门用来存放地址的变量,有时对地址,指
针和指针变量不区分,统称指针。(地址==指针)

在这里插入图片描述

2.指针变量的说明

一般形式:

<存储类型>  <数据类型>   *<指针变量名>
例如:int *pName;int  a = 0;pName = &a;printf("%d",*p);

指针的存储类型是指针变量本身存储类型
指针说明时指定的数据类型不是指针变量本身的数据类型,而是指针目标的数据类型,简
称为指针的数据类型。

指针在说明的同时,也可以被赋予初值,叫做指针的初始化。

<存储类型> <数据类型> *<指针变量名> = <地址量>;
例如:int a ,*pa = &a;int a=1;printf("%d",*pa);

3. 指针的含义

指针指向的内存区域中的数据称为指针的目标
如果它指向的区域是程序的一个变量的内存空间,则这个变量称为指针的目标变量,简称
为指针的目标。
引入指针要注意程序中的px 、*px 和 &px 三种表示方法的不同意义,设px为一个指针,
则:

  • px ,指针变量,它的内容是地址量
  • *px,指针所指向的对象,它的内容是数据
  • &px,指针变量占用的存储区域的地址,是一个常量

指针的赋值运算指的是通过赋值运算符指针变量送一个地址值。
向一个指针变量赋值时,送的值必须是地址常量或指针变量,不能是普通的整数(除
了赋零以外)。

指针赋值运算常见的有以下几种形式:

  1. 把一个普通变量的地址赋给一个具有相同数据类型的指针
	  double x = 15 ,*px ;px =  &x ;  

2.把一个已有地址值的指针变量赋给具有相同数据类型的另一个指针变量

	int a = 5,*px,*py;px = &a;py = px;

3.把一个数组的地址赋给具有相同数据类型的指针

		int arr[10],*pa;pa = arr; //  等价于pa = &arr[0]

什么是指针?
指针是一种专门存放地址的变量,它的值代表一个内存单元,对其操作可以简介对其内变量操作故名指针
指针有多少个字节?
不同电脑的不一样32位系统4个字节,64位的电脑8个字节

4. 指针运算

  • 指针运算是以指针变量所存放的地址量作为运算量而进行的运算
  • 指针运算的实质就是地址的计算
  • 指针运算的种类是有限的,它只能进行赋值运算、算数运算和关系运算。‘

在这里插入图片描述

①指针加减:

在这里插入图片描述

px+n表示的实际位置的地址量是:

  • (px)+sizeof(px的类型) * n

px-n表示的实际位置的地址是:

  • (px)-sizeof(px的类型) * n

注意:

  • 不同数据类型的两个指针实行加减法整数运算是没有意义的
  • 两个指针相减运算
    • px-py运算的结果是两个指针指向的地址位置之间相隔数据的个数。
    • 因此两个指针相减不是两个指针持有的地址值相减的结果。
    • 两个指针相减的结果值不是地址量,而是一个整数值,表示两指针之间相隔数据的个
      数。

px++, ++px, px–, --px运算

在这里插入图片描述

②指针的关系运算符

  • 两个指针之间的关系运算符表示它们指向的地址位置之间的关系,指向地址大的指针
    大于指向地址小的指针
  • 指针与一般整数变量之间的关系运算没有意义。但可以和零进行等于 或不等于的关系
    运算,判断指针是否为空。

在这里插入图片描述

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

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

相关文章

阐述以下方法 @classmethod, @staticmethod, @property?

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

【模板】项目建设方案(Word原件)

1 引言 1.1 编写目的 1.2 项目概述 1.3 名词解释 2 项目背景 3 业务分析 3.1 业务需求 3.2 业务需求分析与解决思路 3.3 数据需求分析【可选】 4 项目建设总体规划【可选】 4.1 系统定位【可选】 4.2 系统建设规划 5 建设目标 5.1 总体目标 5.2 分阶段目标【可选】 5.2.1 业务目…

Flutter循序渐进==>基金管理APP首页

目录 查看版本 组件 组件源码学习 做个基金APP首页源代码 效果 查看版本 组件 组件的本质就是个类。 import package:flutter/material.dart;void main() {runApp(const OurFirstApp(),); } OurFirstApp()实例化&#xff0c;就是给runApp用的&#xff0c;runApp就是运行实…

自适应蚁群算法优化的攀爬机器人的路径规划

大家好&#xff0c;我是带我去滑雪&#xff01; 攀爬机器人是一种能够在复杂环境中自主移动和攀爬的具有广阔应用前景的智能机器人&#xff0c;具有较强的应用潜力和广泛的研究价值。随着科技的不断发展&#xff0c;攀爬机器人在许多领域中的应用越来越广泛&#xff0c;例如建筑…

Talk|CityU 助理教授马佳葳: CVPR 2024, 基于多模态理解的混合数据专家模型

本期为TechBeat人工智能社区第604期线上Talk。 北京时间6月27日(周四)20:00&#xff0c;香港城市大学助理教授—马佳葳的Talk已经准时在TechBeat人工智能社区开播&#xff01; 他与大家分享的主题是: “基于多模态理解的混合数据专家模型”&#xff0c;他向大家介绍了混合数据专…

【合作ACM出版,稳定EI、Scopus稳定检索】第五届城市工程与管理科学国际会议(ICUEMS 2024,8月2-4)

第五届城市工程与管理科学国际会议&#xff08;ICUEMS 2024&#xff09;将于2024年8月2-4日在天津举行。 会议的目的是为从事城市工程、管理科学相关领域的专家、学者、工程师和技术研究人员提供一个平台&#xff0c;分享科研成果和前沿技术&#xff0c;了解学术发展趋势&…

航空电子制造业企业数字化转型:智能工厂建设

引言 航空电子制造业是航空工业的重要组成部分&#xff0c;涵盖了飞机的电子系统、导航设备、通信系统、自动驾驶仪等关键组件。自20世纪中期以来&#xff0c;航空电子技术经历了快速发展&#xff0c;从最初的机械和模拟设备逐步过渡到数字化、网络化和智能化系统。现代航空电子…

中国高分辨率土壤质地数据(1KM)

土壤中各粒级占土壤重量的百分比组合&#xff0c;叫做土壤质地。土壤质地是土壤的最基本物理性质之一&#xff0c;对土壤的各种性状&#xff0c;如土壤的通透性、保蓄性、耕性以及养分含量等都有很大的影响是评价土壤肥力和作物适宜性的重要依据。 中国土壤质地空间分布数据是根…

搭建ragflow的步骤

前提条件 CPU > 4 核 RAM > 16 GB Disk > 50 GB Docker > 24.0.0 & Docker Compose > v2.26.1 如果你并没有在本机安装 Docker&#xff08;Windows、Mac&#xff0c;或者 Linux&#xff09;, 可以参考文档 Install Docker Engine 自行安装。 启动服务器 …

C盘太满怎么办

C盘红了怎么办&#xff0c;最常见的问题是微信装在了C盘&#xff0c;需要通过设置来更换缓存文件位置。 此外&#xff0c;如果是工作电脑&#xff0c;钉钉、企业微信等都有可能产生和微信同样的问题&#xff0c;解决方式也相同&#xff0c;通过设置更换文件位置。 此外&…

Linux创建目录——mkdir命令,du命令,touch用法,创建tree拓扑图

1. mkdir 命令 格式 mkdir - 参数 路径 / 目录名 参数 -p &#xff1a;快速创建多级目录&#xff08;递归目录&#xff09; -v &#xff1a;显示创建目录的详细过程 例&#xff1a; [rootserver ~] # mkdir t1 [rootserver ~] # mkdir t2 t3 t4 [rootserver ~] # mk…

什么是GPIO口,GPIO口最简单的input/output

目录 一&#xff0c;什么是GPIO口 二&#xff0c;GPIO内部结构 三&#xff0c;GPIO口工作模式 一&#xff0c;什么是GPIO口 1.GPIO口是通用输入输出端口&#xff08;General-purpose input/output&#xff09;的英文缩写&#xff0c;是所有的微控制器必不可少的外设之一&…

每日一题系列-把字符串转换成整数

&#x1f308;个人主页&#xff1a;羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” 题目 题目分析 对于这道题目而言&#xff0c;我们需要做到的是将字符串转换成整数。 这里我们需要注意几个点 首先我们需要保证下标在这个范围之内&#xff0c;所以我们会在每…

【Python】已解决:(SqlServer报错)SQL错误(208):对象名‘string_split’无效

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决&#xff1a;&#xff08;SqlServer报错&#xff09;SQL错误&#xff08;208&#xff09;&#xff1a;对象名‘string_split’无效 一、分析问题背景 在使用Python连接SqlSe…

第二证券:股票盘口是什么?股票盘口基础知识?

股票的盘口是指在生意过程中实时盘面数据窗口。 盘口信息有&#xff1a;托付份额、生意生意五档挂单数据、股票开盘价、股票收盘价、股票涨跌幅、股票最高价、股票最低价、股票价、股票的量比、股票的表里盘数据、股票的总成交量、股票的换手率、股票的总股本、股票的流通股本…

python笔记----少儿编程课程

第1课&#xff1a; 认识新朋友-python 知识点&#xff1a; 1、在英文状态下编写Python语句。 2、内置函数print()将结果输出到标准的控制台上&#xff0c;它的基本语法格式如下&#xff1a; print("即将输出的内容") #输出的内容要用引号引起来&#xff0c;可…

主播美颜工具开发全攻略:美颜SDK从基础到进阶的技术指南

今天&#xff0c;笔者将为你详细介绍美颜SDK的基础知识以及如何进行进阶开发。 一、美颜SDK基础知识 什么是美颜SDK&#xff1f; 美颜SDK是一种软件开发工具包&#xff0c;包含了一系列用于图像处理的算法和功能&#xff0c;主要用于实时视频处理和图像优化。开发者可以将美…

CentOS安装Docker教程(包含踩坑的经验)

目录 一.基础安装 ▐ 安装Docker 二.启动Docker服务 三.配置Docker镜像加速 一.基础安装 在安装Docker之前可能需要先做以下准备 首先如果系统中已经存在旧的Docker&#xff0c;则先卸载&#xff1a; yum remove docker \docker-client \docker-client-latest \docker-…

FastGPT 手动部署错误:MongooseServerSelectionError: getaddrinfo EAI_AGAIN mongo

在运行 FastGPT 时&#xff0c;mongodb 报如下错误&#xff1a; MongooseServerSelectionError: getaddrinfo EAI_AGAIN mongo 这是因为 mongo 没有解析出来&#xff0c;在 hosts 文件中添加如下信息&#xff1a; 127.0.0.1 mongo 重新运行 FastGPT 即可。 参考链接&#xff…

昇思25天学习打卡营第4天|网络构建

文章目录 网络构建 网络构建 在打卡第一天就简单演示了网络构建&#xff0c;一个神经网络模型表示为一个Cell&#xff0c;由不同的子Cell构成。使用这样的嵌套结构可以简单地使用面向对象编程的思维&#xff0c;对神经网络结构进行构建和管理。 继承nn.Cell类来定义神经网络&…