基于C++基础知识的指针

一、变量与指针

    在C++中,变量是用来存储数据的一个标识符,而指针是一个变量,该变量存储的是另一个变量的地址。

  • 变量可以是不同的数据类型,包括整数(int)、浮点数(float)、字符(char)、布尔值(bool)等。在声明变量时,需要指定变量的数据类型和标识符。例如:
int num; // 声明一个整数变量
float f; // 声明一个浮点数变量
char c; // 声明一个字符变量
bool isTrue; // 声明一个布尔变量
  • 指针是一种数据类型,通常说的指针就是指针变量,它是专门用来存放地址的变量,而变量的指针主要指变量在内存中的地址。

1.指针的声明

声明指针的一般形式如下: 数据类型标识符 * 指针变量名

例如: 

int *p;  //声明一个整型指针
float *a, *b;  //声明两个浮点指针

 2.指针的赋值

(1) 在初始化时赋值:

int i=100;
int *p=&i;

(2)在后期赋值:

int i=100;
p=&i;

 3.关于指针使用的说明

 (1)指针变量名是p,而不是*p。 p=&i的意思是取变量i的地址赋值给指针变量p。

   输出变量的地址如图1.3所示

图 1.3

  运行结果如下所示。

  通过printf函数直接将地址输出。因为变量是由系统分配空间的,所以变量的地址不是固定不变的。 

 (2)指针变量不可以直接赋值。

int a=100;
int *p;
p=100;

 该代码编译不能通过。

(3)不能把*p当做变量使用。 

int a=100;
int *p;
*p=100;
printf("%d", p);
printf("%d", *p);

上面代码可以编译通过,但无法输出结果。 

二、指针运算符和取地址运算符 

 *是指针运算符,&是取地址运算符。

 以下是通过指针实现输出指针对应的数值如图2.1所示。

图2.1

 运行结果如下所示。

三、指向空的指针与空类型指针 

 指针可以指向任何数据类型的数据,包括空类型(void),如:

     void *p;   //定义一个指向空类型的指针变量

 空类型指针可以接受任何类型的数据。

  空指针的使用代码如图3.1所示

图3.1

运行结果如下所示。 

四、总结

    以上就是今天要讲的内容,本文章简单介绍了C++中的指针变量及其如何使用。如有想要了解更多相关的C++基础知识的读者,欢迎您点击下面链接进行学习,详细知识可以看我的专栏C++语法学习。

https://mp.csdn.net/mp_blog/creation/editor/138507291

https://mp.csdn.net/mp_blog/creation/editor/138447951

五、结言

    感谢各位读者的阅读与参与,您的支持是我前进的动力!让我们共同进步,勇攀高峰,实现梦想,加油!谢谢各位读者的鼓励与支持!!!

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

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

相关文章

智慧粮库/粮仓视频监管系统:AI视频智能监测保障储粮安全

智慧粮库视频监管系统是一种基于物联网、AI技术和视频监控技术的先进管理系统,主要用于对粮食储存环境进行实时监测、数据分析和预警。TSINGSEE青犀智慧粮库/粮仓视频智能管理系统方案通过部署多区域温、湿度、空气成分等多类传感器以及视频监控等设施,对…

IDEA及Maven配置代理及Maven中央仓库配置详解

一、配置代理 首先,需要本地开启代理入口,如图。 这个跟你使用代理软件有关。像我使用的是qv2ray。 其次,idea配置代理,如图。 1.1 idea配置代理 打开Settings,如图 1.2 maven配置代理 maven配置代理,修…

虚拟机CentOS密码重置

1,reboot重启 在出现下面的界面1按e 如果有选项就选择“CentOS Linux (3.10.0-327.e17.x86_64)7 (Core)”【我的电脑没有直接显示界面2】 界面1 界面2 2,在上述界面2中继续按e进入编辑模式 找到“ro cr…

partially initialized module ‘replicate‘ has no attribute ‘run‘

partially initialized module replicate has no attribute run(most likely due to a circular import) 在包名上停留查看impot 包的地址。 报错原因: 文件重名了,导入了 当前文件 。 修改文件名 即可。

Vue3路由及登录注销功能、设置导航守护功能模块

路由 在vue中,页面和组件都是.vue文件,可以说是一样的,结构、内容和生产方法都是一样,但是组件可以被反复使用,但页面一般只被使用一次。 路由的作用就是网页地址发生变化时,在App.vue页面的指定位置可以加…

17 M-LAG 配置思路

16 华三数据中心最流行的技术 M-LAG-CSDN博客 M-LAG 配置思路 什么是M-LAG?为什么需要M-LAG? - 华为 (huawei.com) 1 配置 M-LAG 的固定的MAC地址 [SW-MLAG]m-lag system-mac 2-2-2 2 配置M-LAG 的系统标识符系统范围1到2 [SW-MLAG]m-lag system-nu…

MongoDB安装及接入springboot

环境:windows、jdk8、springboot2 1.MongoDB概述 MongoDB是一个开源、高性能、无模式(模式自由)的文档(Bson)型数据库;其特点如下: 模式自由 ---- 不需要提前创建表 直接放数据就可以 支持高并…

STM32窗口看门狗的操作

STM32的窗口看门狗的主要功能是,程序过早的喂狗还有太晚喂狗,都会触发单片机重启,就是有一个时间段,在这个时间段内喂狗才不会触发单片机重启。 下面我就总结一下窗口看门狗的设置过程: 第一步:开启窗口看…

vscode怎么设置背景图片?

vscode背景图片是可以自己设置的,软件安装后默认背景的颜色是黑色的,这是默认的设计,如果要修改背景为指定的图片,那么我们需要安装插件,然后再通过代码来设置背景图片的样式,下面我们就来看看详细的教程。…

代数结构:5、格与布尔代数

16.1 偏序与格 偏序集:设P是集合,P上的二元关系“≤”满足以下三个条件,则称“≤”是P上的偏序关系(或部分序关系) (1)自反性:a≤a,∀a∈P; (2…

旅游推荐管理系统(小组项目)

文章目录 前言 一、项目介绍 1. 项目目的 2. 项目意义 2.1 提升旅游体验 2.2 促进旅游业发展 2.3 数据积累与分析 2.4 提升服务品质 2.5 优化资源配置 二、项目结构 1. 主要使用的技术 1.1 若依(Ruoyi)框架 1.2 Vue.js框架 1.3 Ajax 1.4 …

【进程通信】了解信号以及信号的产生

文章目录 0.前言1.信号的基本概念1.1中断1.1.1 软中断1.1.2硬中断 1.2异步1.2.1异步和同步的比较 2.信号的主要用途3.信号的特点4.查看信号4.1Core和Term的区别4.2生成Core文件 5.初识捕捉信号5.1signal函数 6.产生信号的方式6.1.通过终端按键产生信号6.2.调用系统函数向进程发…

国内智能搜索工具实战教程

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

分享10类正规的网上赚钱平台,让你摆脱单一收入

在这个互联网飞速发展的时代,你是否还在为单一的收入来源而焦虑?别担心,今天带你解锁10种网上赚钱的新姿势,让你的收入不再单一,甚至可能翻倍! 1. 文库类:知识的变现 你知道吗?你的…

k8s 数据流向 与 核心概念详细介绍

目录 一 k8s 数据流向 1,超级详细版 2,核心主键及含义 3,K8S 创建Pod 流程 4,用户访问流程 二 Kubernetes 核心概念 1,Pod 1.1 Pod 是什么 1.2 pod 与容器的关系 1.3 pod中容器 的通信 2, …

imx91的uboot编译

一、准备操作 下载半导体厂家的uboot源码 如这里我要下载的是imx91的恩智浦linux芯片bootloader 进入半导体厂家官网 下载源码,略 更新linux源,这里我是替换成清华源 vi /etc/apt/sources.list deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ fo…

【江科大STM32学习笔记】新建工程

1.建立工程文件夹,Keil中新建工程,选择型号 2.工程文件夹里建立Start、Library、User等文件夹,复制固件库里面的文件到工程文件夹 为添加工程文件准备,建文件夹是因为文件比较多需要分类管理,需要用到的文件一定要复…

Web UI自动化测试--PO模式

没有PO实现的测试用例的问题: 重用性低:登录功能重复可维护性差:数据和代码混合可读性差:元素定位方法杂乱(id、xpath、css混杂)可读性差:不易识别操作的含义(特别是css和xpath语法)可维护性差:如果某个元素的属性改了,你要更改多次PO(Page Object Model)页面对象模型…

完全背包问题(c++)

完全背包问题 当前有 N 种物品,第 i 种物品的体积是 ci​,价值是 wi​。 每种物品的数量都是无限的,可以选择任意数量放入背包。 现有容量为 V 的背包,请你放入若干物品,使总体积不超过 V,并且总价值尽可…

YOLOv8+CLIP实现图文特征匹配

本文通过结合YOLOv8s的高效物体检测能力与CLIP的先进图像-文本匹配技术,展示了深度学习在处理和分析复杂多模态数据中的潜力。这种技术的应用不仅限于学术研究,还能广泛应用于工业、商业和日常技术产品中,以实现更智能的人机交互和信息处理。…