小樽 C++指针—— (壹) 指针变量

news2024/11/28 16:02:59

(壹) 指针变量

一、指针的概念与定义

二、给指针变量p赋值

三、指针变量的的+、-运算

四、无类型指针

五、多重指针


 C++ (壹) 指针变量

小明想把从李华家借来的书——《CCF中学生计算机程序设计》还给李华,但李华不在家,于是把书放到书架第3层的最右边,并写了一张留言条放在桌上,上面写着:我还你的书放在书架第3层最右边。当李华回来后,看到这张留言条就知道书在哪了。

这张留言条有什么作用呢?

它就相当于一个指针,上面的内容不是书本身,而是书的位置,李华通过留言条(指针)找到了小明还回来的书。

指针针对的是内存空间的位置(地址),地址操作符 <--> &

int a=3; 请问如何找到a值为3的地址位置呢?

#include<iostream>
using namespace std;
int main(){
	int a=3;
	cout<<&a<<endl;
	a=4;
	cout<<&a<<endl;
	int b=3;
	cout<<&b<<endl; 
	return 0;
}

  • 可以发现,变量a的地址无关赋值多少!!!
  • 不同变量的内存空间地址是不一样的!!!

 

一、指针的概念与定义

指针定义:变量类型 *p;  --》int *p = new(int); //申请一个空间给p,*p内容不确定。

int *p = NULL;

定义了一个指针变量p,p指向一个内存空间,赋值为NULL也就是0,表示特殊的空地址。

二、给指针变量p赋值

p=&a;  //把变量a存值的地址给p,注意p是地址,指针*p的值才是3。

 

 炼1.输入两个不同的浮点数,通过指针把最大值+10,并输出。

#include<iostream>
using namespace std;
int main(){
float a,b,*p;
	cin>>a>>b;
	if(a>b){
		p = &a;
	}
	else{
		p = &b;
	}
	*p += 10;
	cout<<*p<<endl; 
	return 0;
}

 


 三、指针变量的的+、-运算

炼2:输入n个整数,使用指针变量访问输出

#include<iostream>
using namespace std;
int main(){
 	int n,a[100],*p;
	cin>>n;
	for(int i=0;i<n;i++){ //输入 
		cin>>a[i];
	} 
	p = &a[0]; //初始赋值 
	for(int i=0;i<n;i++){
		cout<<*p<<" "; 
		p++; // p++指的是对地址+sizeof(int) 
	} 
	return 0;
}

假如指针 p = &a[0];

那么请问 *p+3 是什么意思? *(p+3) 呢?

 *p代表值 *p+3代表值+3; *(p+3) p代表地址 ,p+3 代表地址+3

int a[1000];

p = &a[5];

p++ 相当 a[6]

练习:*p+3相当 a[5]+3   ;*p-2相当 a[5]-2   ; *(p-2)相当 a[3]    


四、无类型指针

有时候我们不确定 指向内容的值类型。所以先定义无类型的指针(void *p),根据后面再强制转换指针类型。

炼3:无指针使用样例

#include<iostream>
using namespace std;
int a=10;
double b=3.5;
void *p; 
int main(){
	p = &a;
	cout<< *((int *)p)<<endl;
	p = &b;
	cout<< *((double *)p)<<endl;
	return 0;
}


五、多重指针

有一个问题,既然指针可以指向其他类型或强制转换,那指针本身就是一种类型,那谁可以指向指针? 当然是指针的‘指针’,也就是多重指针!!!

炼4:两重指针使用样例。

#include<iostream>
using namespace std;
int a=10, *p;
int **pp; 
int main(){
	p = &a;
	pp = &p;
	cout<<a<<"="<<*p<<"="<<**pp<<endl;
	return 0;
}


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

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

相关文章

入门介绍对ChatGPT的应用程序接口API的访问<openai模块>

首先本人建议使用国内环境安装openai模块(这是我切换环境使用国外IP之后安装有问题的建议)pip install openai -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com安装好了之后&#xff0c;我们切换成科学上网&#xff0c;然后我们来到https://platform.openai…

十大开源测试工具和框架,一定有你需要的

目录 前言 Katalon Studio Selenium Appium JMeter SOAP UI Robot Framework Watir JUnit Robotium Citrus 总结 前言 免费的开源框架和工具由于其开源特性&#xff0c;现在逐渐成为自动化测试的首选解决方案。区别在于&#xff0c;你是喜欢使用类库编写一个全新的…

Ubuntu20.04安装redis与远程连接

一、安装Redis5.7 1、安装Redis apt-get install redis-server2、安装完成后&#xff0c;Redis服务器会自动启动。查看redis是否启动成功 service redis-server status #查看状态如下显示Active:active(running)状态&#xff1a;表示redis已在运行&#xff0c;启动成功。 …

Linux常用命令1

目录1、远程登陆服务器2、文件相关&#xff08;1&#xff09;文件和目录属性&#xff08;2&#xff09;创建目录mkdir&#xff08;3&#xff09;删除目录rmdir&#xff08;4&#xff09;创建文件touch&#xff08;5&#xff09;删除文件或目录rm&#xff08;6&#xff09;ls命令…

使用Python调用ChatGPT

import openai# Set up the OpenAI API clientopenai.api_key "你的KEY"# Set up the model and promptmodel_engine "ada"prompt input(请输入字符串&#xff1a;)# Generate a responsecompletion openai.Completion.create(enginemodel_engine,prom…

情人节使用AI TOOL来创建一个甜言蜜语的女伴

一、首先使用chatgpt生成一段情侣间的对话&#xff0c;需要反复几次&#xff0c;达到满意的程度&#xff0c;然后将女方的话归在一起。 这是一个情侣私下谈话的场景&#xff0c;女方表示对男朋友精心准备的情人节安排和礼物表示很满意 二、 打开网站&#xff1a;https://lexic…

Global mapper下载并使用在线数据---以下载ASTER GDEM为例

Global mapper 有个非常厉害的功能&#xff0c;就是下载在线资源&#xff0c;且不需要插件 当我们需要使用dem的时候&#xff0c;手头没有&#xff0c;需要去官网或者其他地方下载&#xff0c;就很麻烦 下载在线数据步骤—以下载ASTER DEM为例 打开global mapper后&#xff…

Unity 工具 之 SoftMask软遮罩 实现 UI 边缘渐变过渡的简单使用介绍

Unity 工具 之 SoftMask软遮罩 实现 UI 边缘渐变过渡的简单使用介绍 目录 Unity 工具 之 SoftMask软遮罩 实现 UI 边缘渐变过渡的简单使用介绍 一、简单介绍 二、Mask 实现的遮罩效果 三、Soft Mask 实现遮罩效果 四、 Soft Mask 的一些设置 五、插件下载 一、简单介绍 U…

Google Chrome开发者工具

文章目录简介debuggerDOMContentLoaded与load的区别最后我们来回答这个问题&#xff1a;我们为什么一再强调将css放在头部&#xff0c;将js文件放在尾部简介 Chrome 开发者工具是一套内置于 Google Chrome 中的Web开发和调试工具&#xff0c;可用来对网站进行迭代、调试和分析…

[数据结构笔记]常见排序算法

分类与性能 排序方法平均情况最好情况最坏情况辅助空间稳定性冒泡排序O(N^2)O(N)O(N^2)O(1)稳定简单选择排序O(N^2)O(N^2)O(N^2)O(1)不稳定直接插入排序O(N^2)O(N)O(N^2)O(1)稳定希尔排序O(N*logN) ~ O(N^2)O(N^1.3)O(N^2)O(1)不稳定堆排序O(N*logN)O(N*logN)O(N*logN)O(1)不稳…

英文视频字幕生成和翻译工具、AI拟声工具

文章目录一、Autosub-ahk&#xff1a;英文视频字幕生成工具二、VideoSrt&#xff1a;英文视频字幕生成和翻译工具三、SubtitleEdit&#xff1a;字幕编辑工具四、PotPlayer&#xff1a;视频播放器&#xff08;可导入字幕&#xff09;五、MockingBird&#xff1a;AI拟声工具一、A…

软件架构知识3-系统复杂度-高可用性、可扩展性、低成本、安全、规模

高可用性 系统无中断地执行其功能的能力&#xff0c;代表系统的可用性程度&#xff0c;是进行系统设计时的准则之一。 高可用的“冗余”解决方案&#xff0c;单纯从形式上来看&#xff0c;和之前讲的高性能是一样的&#xff0c;都是通过增加更多机 器来达到目的&#xff0c;但…

MyBatis案例 | 使用映射配置文件实现CRUD操作——删除数据

本专栏主要是记录学习完JavaSE后学习JavaWeb部分的一些知识点总结以及遇到的一些问题等&#xff0c;如果刚开始学习Java的小伙伴可以点击下方连接查看专栏 本专栏地址&#xff1a;&#x1f525;JavaWeb Java入门篇&#xff1a; &#x1f525;Java基础学习篇 Java进阶学习篇&…

Linux--网络基础(1)--0211 12

1.网络传输基本流程 1.1 同一个网段内的两台主机进行文件传输 局域网中的两态主机是可以直接通信的。&#xff08;手机和电视链接同一个wifi就可以投屏&#xff09; 从逻辑上讲&#xff0c;应用层的数据可以直接给另一个人的应用层。 从物理上讲&#xff0c;应用的数据需要自…

分库分表索引设计:分布式环境下的 主键索引、二级索引、全局索引的最佳设计实践

文章目录主键选择索引设计全局表唯一索引总结结语主键选择 对主键来说&#xff0c;要保证在所有分片中都唯一&#xff0c;它本质上就是一个全局唯一的索引。如果用大部分同学喜欢的自增作为主键&#xff0c;就会发现存在很大的问题。 因为自增并不能在插入前就获得值&#xf…

TDengine 3.0.2.5 查询再优化!揭秘索引文件的工作原理

TDengine 3.0 虽然对底层做了大规模的优化重构&#xff0c;但是相对于数据文件的工作逻辑和 2.0 相比是整体保持不变的。本系列文章的主旨在于帮助用户深入理解产品&#xff0c;并且拥有基本的性能调试思路&#xff0c;从而获得更好的产品体验。本期文章会在讲解 TDengine 时序…

今天是情人节呐,我利用Python制作了好多表白的东西,快来吧~

今天是情人节那&#xff0c;有没有现在没有对象的宝子&#xff0c;评论里扣个111哈哈 目录 玫瑰 爱心树 丘比特 多彩气球 阿玥的小课堂 一、情人节的由来 二、情人节的来历和意义 玫瑰 局部代码实现如下&#xff1a; # 花瓣1 turtle.left(150) turtle.circle(-90, 70) …

【STM32笔记】低功耗模式下的RTC唤醒(非闹钟唤醒,而是采用RTC_WAKEUPTIMER)

【STM32笔记】低功耗模式下的RTC唤醒&#xff08;非闹钟唤醒&#xff0c;而是采用RTC_WAKEUPTIMER&#xff09; 前文&#xff1a; blog.csdn.net/weixin_53403301/article/details/128216064 【STM32笔记】HAL库低功耗模式配置&#xff08;ADC唤醒无法使用、低功耗模式无法烧录…

C语言思维导图大总结 可用于期末考试 C语言期末考试题库

目录 一.C语言思维导图 二.C语言期末考试题库 一.C语言思维导图 导出的图可能有点糊&#xff0c;或者查看链接&#xff1a;https://share.weiyun.com/uhf1y2mp 其实原图是彩色的不知道为什么导出时颜色就没了 部分原图&#xff1a; 也可私信我要全图哦。 图里的链接可能点不…

软件测试工程师,月薪8000是一个什么样的工作状态?

这个工资得看是在什么地方&#xff0c;如果是在北上深&#xff0c;在互联网圈子里面&#xff0c;这个工资偏低&#xff0c;而且8000的话要解决生活各种开销&#xff0c;基本最后都是所剩无几。但是如果是在生存压力没有那么大的城市&#xff0c;8000基本算是很不错的一个薪资待…