盖子的c++小课堂——第十四讲:指针

news/2025/1/16 1:34:37/

前言

作者:大家好鸭,想必大家看到标题都有感到有一丝奇怪吧,其实,今天主要讲一些运算符

粉丝:啊……嗯嗯嗯

作者:那开始吧~~

内存地址运算符&

粉丝:讲这个干嘛,我都会了~~

作者:嗯?那么自信嘛?那我考考你,“&”可以翻译为什么~~

粉丝:额……可以……可以翻译为……为……嗯……

作者:哎,代表“取地址”~~那“&x”呢?

粉丝:x的地址~~

作者:昂,没错~~

数组和地址

作者:先看下面这一段代码

#include<iostream>
using namespace std;
int main(){int f[3];cout<<%f[0]<<endl;cout<<%f[1]<<endl;cout<<%f[2]<<endl;cout<<f<<endl;cout<<f+1<<endl;cout<<f+2<<endl;return 0;
}

粉丝:解释一下叭~\(^o^)/~

作者:好嘞,来看下面,输出结果和代码解释~~

int f[3];
f

数组名f记录数组0号元素的内存地址

f+1

f+1记录数组1号元素的内存地址

f+2

作者:现在应该知道是啥了叭~~

粉丝:f+2记录数组2号元素的内存地址

作者:昂~没错~~

指针

引用运算符“*”

作者:我在这里就不多写了,直接开始解释 ↓ ↓ ↓ ↓

“*”翻译为“指向的内容”

“*p”翻译为“p指向的变量值”

“int *p”翻译为“定义p为指向整数的指针”

“p=&x”翻译为“将x的地址赋值给p”,也就是“p指向了x”

作者:这里要注意一下,p代表pointer指针

粉丝:嗯嗯嗯~~

指针运算&和*

int x=8;
int *p;
p=&x;
*p=9;
cout<<x<<endl;

彩蛋

你们不会真以为这是什么彩蛋吧,其实我给大家留了道题目,可以做做看呐(蛮简单的)做完可以在评论区里留下你的代码哦~~

内存爆炸1

题目描述

众所周知,你写的程序会使用内存空间,如果使用太多内存,会超过允许的限制,所以我们一定要清楚自己的程序占用多少内容。例如:

定义数组int sum[100]; 会使用100int类型变量,也就是100*4=400字节。

定义数组long long d[1000]; 会使用1000long long类型变量,也就是1000*8=8000字节。

目前你希望给C++软件增加一个新功能:可以显示数组要使用多少内存。

 

输入格式

输入文件memory1.in 输入包含一行字符串,代表一条合法的一维数组定义,长度不超过100,形式如下: 类型名 数组名[元素个数]; 其中没有多余的空格。类型名可能有4种: 第一种char。每个char类型变量占1个字节。 第二种bool。每个bool类型变量占1个字节。 第三种int。每个int类型变量占4个字节。 第四种long long。每个long long类型变量占8个字节。 元素个数不超过10的18次方。

输出格式

输出文件memory1.out

输出一个数字,代表占用多少字节。

输入输出样例

输入样例:

int cnt[10];

输出样例:

40

输入样例:

char s[256];

输出样例:

256

 

总结

好了,今天的小课堂就到这里了,下期再见,拜了个拜~~ 


http://www.ppmy.cn/news/20261.html

相关文章

Linux | 软件包管理器——yum的使用

文章目录一、什么是软件包二、有关软件使用的背景讲解1、如何去下一个软件呢&#xff1f;过程是怎样的&#xff1f;2、软件的商业利益分析3、Linux开源社区的生态链4、Linux中软件的分类和选择三、yum的使用1、说在前面【注意事项】2、如何查看软件包3、软件的安装和卸载【小火…

【云原生之Docker实战】在Docker环境下部署kanboard项目管理工具

【云原生之Docker实战】在Docker环境下部署kanboard项目管理工具 一、kanboard介绍二、检查本地Docker环境1.检查Docker版本2.检查系统版本3.检查Docker状态4.检查docker compose版本三、下载kanboard镜像四、部署kanboard1.创建部署目录2.编辑docker-compose.yaml3.创建kanboa…

tomcat 的并发能力分析

tomcat 参考&#xff1a;Tomcat的3个参数acceptCount、maxConnections、maxThreads Tomcat 的核心组件 Tomcat 由 2 大核心组件组成&#xff1a;Connector、Container Tomcat 处理请求的过程 请求在 tomcat 服务器的处理过程&#xff08;BIO 模式&#xff09; 客户端与服务…

【Leetcode每日一题】27. 原地移除元素|神级理解双指针

博主简介&#xff1a;努力学习的预备程序媛一枚~博主主页&#xff1a; 是瑶瑶子啦所属专栏: LeetCode每日一题–进击大厂 目录题目描述题目分析&#xff1a;代码实现补充训练--验证代码实现题目描述 链接: 27. 移除元素 给你一个数组 nums 和一个值 val&#xff0c;你需要 原…

Kettle(16):Kitchen作业执行引擎

在Linux中对Kettle做Linux配置(和Windows相同,添加驱动jar包) 上传以后需要重启。 1 在Windows中开发作业 2 配置Start组件 3 配置转换组件 修改Kettle&

go mod更新指定的tag的包后,go vendor内容未更新

背景 golang项目使用module进行依赖及版本管理&#xff0c;私有项目或二次开发的项目通过vendor进行管理。 在一次修改代码&#xff0c;打完tag&#xff0c;修改项目go.mod中依赖私有仓库的tagv6.0.12后&#xff0c;使用go mod tidy 更新依赖&#xff0c;go.sum中的对应仓库的…

最快的树视图组件:Flexible TreeView.NET Crack

为什么要使用灵活的 TreeView&#xff1f; 灵活性 市场上其他类似树视图的组件所不具备的无与伦比的可扩展性和独特功能。 表现 市场上最快的树视图组件。 仅需 0.39 秒即可添加 100,000 个节点。 简单 尽管是一个非常强大的树视图组件&#xff0c;但 Flexible TreeView 被设计…

Python中的文件对象

文件对象的seek()和tell()打开一个文件&#xff0c;读取内容&#xff0c;是很常见的操作。不过有的时候我们还需要反复读取文件中的内容&#xff0c;如果多次打开文件读取再多次关闭&#xff0c;显然不是特别好的操作&#xff0c;我们可以借助Python文件对象的seek()和tell()函…