研一寒假02-指针_new分配内存_使用new来创建动态数组_使用动态数组_使用delete来释放new分配的内存...

#---------------------------------指针-----------------------------------#

#include <iostream>

int main()
{
using namespace std;


/* 指针引入 */
int updates = 6; //声明一个变量
int* p_updates; //声明一个指针p_updates,该指针指向一个地址
p_updates=&updates; //将updates的地址赋给p_updates

cout<<"Address:updates= "<<&updates<<endl; //显示变量updates的地址
cout<<"Address:p_updates= "<<p_updates<<endl; //由于p_updates本身就是地址,所以此处不用再加地址符& 以上两行显示同一个地址

*p_updates=*p_updates+1; //指针(地址)p_updates所指向的值加1,*p_updates和updates是完全等价的.所以这一句将会修改指针p_updates指向的值updates
cout<<"Now updates= "<<updates<<endl; //此时updates的值为7
//int型变量updates和指针变量p_uodates只不过是同一枚硬币的两面,变量updates表示值,并使用&来获取地址;而变量p_updates表示地址,并使用*来获取值
//可以将值赋给*p_updates,这样做将会修改指向的值,即updates


/* 指针声明时的注意 */
int *p1; //可以这样声明
int* p2; //这样也可以,int*是一种复合类型强调的是指向int的指针,在哪里添加空格对编译器没有任何区别
int* p3,p4; //声明指针变量p1和int型变量p2

int higgens=5;
int* pt5 = &higgens; //在声明中初始化指针


/* new分配内存 */
int* pt6; //声明一个指针pt6
//pt6 = 0xB8000000; //在自己的理解中会认为0xB8000000是一个偏移地址,但是编译器却会认为这是一串数字,所以将数字赋给指针(地址)会报错

//报错解决方法一:使用强制转换
pt6 = (int*)0xB8000000; //有效,使用int*进行强制转换,将0xB8000000强制转换为地址

//报错解决方法二:使用new关键字去给指针分配内存地址
int* pt7 = new int; //new关键字的作用是在程序运行时,寻找一块适合存储int的内存,并返回一个地址赋给pt7*****
*pt7 = 1001; //有效,这样就可以直接给*pt7直接赋数字值*****


/* 使用delete来释放new分配的内存 所以new和delete必须是成对出现的 */
double* ps = new double;
*ps = 6;
delete ps; //释放ps所指向的内存,但不会删除指针,且只可释放一次

int jugs=6; //有效,声明一个int型变量jugs并赋初值
int* pq=&jugs; //有效,将jugs的地址赋给指针pq
//delete pq; //无效,delete是来释放new分配的内存的


/* 使用new来创建动态数组 */
//静态联编:数组在编译时加入到程序中,在编写程序时候指定数组长度
//动态联编:在程序运行阶段,如果需要数组,则创建它;如果不需要则不创建;还可以在程序运行时选择数组长度。这种数组被称为动态数组

int* psome=new int [10]; //创建一个包含十个元素的动态数组,new返回数组第一个元素的地址并赋给psome
delete [] psome; //当程序使用new分配内存时,应使用delete来释放内存,[]告诉程序应释放整个数组
//当使用new时带[],那么在使用delete时候也应使用[]
//当使用new时不带[],那么在使用delete时候也应不使用[]


/* 使用动态数组 */
int* psome2=new int [10]; //创建包含十个元素的动态数组,psome2指向第一个元素的地址
cout<<psome[0]<<endl; //输出动态数组的第一个元素
cout<<psome[1]<<endl; //输出动态数组的第二个元素
cout<<psome[2]<<endl; //输出动态数组的第三个元素

double* pw = new double [3]; //创建包含三个元素的动态数组
pw[0]=0.12;
pw[1]=0.22;
pw[3]=0.32;
cout<<"pw[1] is "<<pw[1]<<endl; //输出pw[1] is 0.22
pw = pw+1; //在未执行该句之前,pw指向第一个元素的地址,执行此句后pw将指向下一个元素的地址;此时pw不再执行数组第一个元素的地址,而是指向数组第二个元素的地址
cout<<"pw[0] is "<<pw[0]<<endl; //输出pw[1] is 0.22
cout<<"pw[1] is "<<pw[1]<<endl; //输出pw[1] is 0.32
pw=pw-1; //恢复原来的值
delete [] pw; //释放pw所指向的内存

//由于直接定义的数组中数组名只是一个名字,不可以进行加减运算,但是指针是变量,就可以修改它的值
//比如下面的语句是错误的
//int sw[10]; //有效 定义一个数组
//sw=sw+1; //无效
}

 

最后编辑于 2019.02.17 18:33 haijing in hz miss my family

 

 

 

 

 

 

转载于:https://www.cnblogs.com/YiYA-blog/p/10458513.html

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

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

相关文章

利用Windows内置工具winsat测试硬盘速度(SSD机械盘对比)

利用Windows内置工具winsat测试硬盘速度&#xff08;SSD&机械盘对比&#xff09; 以下是红色内容是在命令行运行&#xff1a; C:\Users\Administrator>winsat diskWindows 系统评估工具> 正在运行: 功能枚举 > 运行时间 00:00:00.00> 正在运行: 存储评估 -seq …

我为何在 CSDN 乐在其中

文章目录写在前面成为博主究竟能得到什么&#xff1f;内在提升耀眼名片丰富眼界提升知名度博客》变现写在最后写在前面 各位伙伴大家好&#xff0c;我是几何心凉&#xff0c;一位不是很大的也不是很小的博主&#xff0c;今天想要跟大家去聊一些比较实在的内容&#xff1b;大家能…

EFLinq查询

1、无参数查询var model db.Database.SqlQuery<UserInfo>("select* from UserInfoes ").ToList(); 2、有参查询var model db.Database.SqlQuery<UserInfo>("select* from UserInfoes where idID ",new SqlParameter("ID",id)).ToL…

实现div可以调整高度(div实现resize)

实现div可以调整高度&#xff08;div实现resize&#xff09; 一、div 实现resize&#xff08;类似textarea&#xff09; 代码如下&#xff1a; <!DOCTYPE html> <html><head><title>div实现textarea效果</title><style>#textarea {height:…

10分钟设置免费远程桌面

文章目录前言远程桌面设置教程启动Amazon Lightsail实例配置远程桌面启动远程桌面使用远程桌面前言 “你见过洛杉矶凌晨4点的样子吗&#xff1f;” 没有也没关系&#xff0c;你可以轻松配置一台位于洛杉矶的免费远程桌面。 利用Amazon全球可用区&#xff0c;甚至可以在世界各…

树莓派-开启spi

1. sudo raspi-config #进入树莓派配置页 2. #进入每5项&#xff0c;进入启用spi即可 转载于:https://www.cnblogs.com/lobin/p/10459076.html

Lucene全文检索过程

1. 索引过程&#xff1a; 1) 有一系列被索引文件 2) 被索引文件经过语法分析和语言处理形成一系列词(Term)。 3) 经过索引创建形成词典和反向索引表。 4) 通过索引存储将索引写入硬盘。 2. 搜索过程&#xff1a; 1) 用户输入查询语句。 2) 对查询语句经过语法分析和语言分析得到…

tcpdump 用法

原文链接 本文原文来自&#xff1a; A tcpdump Tutorial with Examples — 50 Ways to Isolate Traffic TCPDUMP 简介 TCPDUMP 在一个界面中既提供了强大的功能又简单易用&#xff0c;无疑已经是网络分析工具中的老大。 本教程将介绍如何以各种方式隔离流量&#xff1a;从IP&am…

网络端

1.synchronized 同步锁 同步方法: 成员|静态 简单,但是锁的范围一般可能较大,效率低 同步块 类的class:相当于锁了类的整个信息|所有对象 this:锁当前对象,锁了这个对象的所有资源 资源:一般锁不变的内容--对象地址 锁的范围太大效率低,锁的范围太小可能锁不住 锁一定要锁不变的…

BZOJ2690: 字符串游戏(平衡树动态维护Dfs序)

Description 给定N个仅有a~z组成的字符串ai,每个字符串都有一个权值vi,有M次操作&#xff0c;操作分三种&#xff1a;Cv x v:把第x个字符串的权值修改为vCs x a:把第x个字符串修改成aQ:求出当前的最大权字符串集合&#xff0c;使得这个集合中的字符串经过重新排列后满足除最后一…

【第一趴】初探uni-app(uni-app发行者、uni-app推出背景、为什么选择uni-app)

文章目录写在前面DCloud当下跨平台开发存在的问题为什么选择uni-app写在最后写在前面 聚沙成塔——每天进步一点点&#xff0c;大家好我是几何心凉&#xff0c;不难发现越来越多的前端招聘JD中都加入了uni-app 这一项&#xff0c;它也已经成为前端开发者不可或缺的一项技能了&…

Rocket - tilelink - Atomics

https://mp.weixin.qq.com/s/TSwKL_qm-b-0e8x7r--hhg 简单介绍Atomics中数学运算、逻辑运算的实现。​​1. ioAtomics是一个硬件模块&#xff0c;他继承自Modules&#xff1a;​​IO端口定义如下&#xff1a;​​其中&#xff1a;a. write: 是否写操作&#xff1b;b. a&#xf…

Spark streaming java代码

待做转载于:https://www.cnblogs.com/drjava/p/10464388.html

【第二趴】uni-app开发工具(手把手带你安装HBuilderX、搭建第一个多端项目初体验)

文章目录 写在前面HBuilderXHBuilderX 优势HBuilderX 安装uni-app 初体验写在最后写在前面 聚沙成塔——每天进步一点点,大家好我是几何心凉,不难发现越来越多的前端招聘JD中都加入了uni-app 这一项,它也已经成为前端开发者不可或缺的一项技能了,所以凉哥为大家推出 聚沙成…

“勤学会”火爆来袭

文章目录勤学会是什么&#xff1f;勤学会存在的意义是什么强大的助学团勤学会如何帮助大家学习参与勤学会能得什么奖品专属C计划加入勤学会勤学会是什么&#xff1f; 他来了他来了&#xff0c;其实两个月前勤学会的概念产品就已经出现了&#xff0c;只不过因为了 1024 大型活动…

LeetCode -- 204. Count Primes

题目标签 HashTab&#xff08;哈希表&#xff09; 题意及思路 题意&#xff1a;略 思路&#xff1a;有关素数的题目我所知道有两种做法。一种是最基本的isPrime算法&#xff0c;关键点在循环判断时&#xff0c;上限为Math.sqrt(n) &#xff08;求n是否为素数&#xff09;。另外…

如何寻找无序数组中的第K大元素?

如何寻找无序数组中的第K大元素&#xff1f; 有这样一个算法题&#xff1a;有一个无序数组&#xff0c;要求找出数组中的第K大元素。比如给定的无序数组如下所示&#xff1a; 如果k6&#xff0c;也就是要寻找第6大的元素&#xff0c;很显然&#xff0c;数组中第一大元素是24&am…

【第三趴】uni-app页面搭建与路由配置(了解工程目录结构、学会搭建页面、配置路由并成功运行)

文章目录 写在前面工程结构新页面呈现写在最后本期推荐写在前面 聚沙成塔——每天进步一点点,大家好我是几何心凉,不难发现越来越多的前端招聘JD中都加入了uni-app 这一项,它也已经成为前端开发者不可或缺的一项技能了,所以凉哥为大家推出 聚沙成塔【45天玩转uni-app】专栏…

测试MongoDB的自动分片

MongoDB的自动分片&#xff1a; test库分片配置&#xff1a; db.shards.find(){ "_id" : "shard0000", "host" : "127.0.0.1:29017", "state" : 1 }{ "_id" : "shard0001", "host" : "1…

线上CPU飚高(死循环,死锁……)?帮你迅速定位代码位置

top基本使用&#xff1a; top命令参考本篇文章 查看内存和CPU的top命令&#xff0c;别看输出一大堆&#xff0c;理解了其实很简单 top 命令运行图&#xff1a; 第一行&#xff1a;基本信息 第二行&#xff1a;任务信息 第三行&#xff1a;CPU使用情况 第四行&#xff1a;物理内…