#include<iostream>
using namespace std;
//数组与指针
int main()
{
int  arry[] = {1,2,5,8,6,3,7};
int * a = arry;
cout << "反转前:" << endl;
for (int i = 0;i < (sizeof(arry) / sizeof(arry[0]));i++)
{
cout << *a++ << " ";
}
cout << endl;
int *p = arry;
int *q = p + sizeof(arry) / sizeof(arry[0]) - 1;
while (p<q)
{
int t = *p;
*p = *q;
*q = t;
p++;
q--;
}
cout << "反转后:" << endl;
for (int i = 0;i < (sizeof(arry) / sizeof(arry[0]));i++)
{
cout << arry[i] << " ";
}
cout << endl;

int c = 10,d=1;//引用使用案例
int &f = c;
f = d;//通过引用修改c的值
cout <<"C:"<< c << endl;
cout << "f:" << f << endl;

//动态内存分配用例
int *h = new int; //动态创建一个变量
cout << "input array length:" << endl;
cin >> *h;
cout << "input array elements:" << endl;
int *g = new int[*h]; //动态创建一个数组
for (int i = 0;i < *h;i++)
cin >> g[i]; //输入数组元素
cout << "output array elements:" << endl;
for (int i = 0;i < *h;i++)
cout << g[i] << " ";
cout << endl;
delete h;
delete[]g;

return 0;
}

//数组指针
//格式:数据类型(*指针名)[常量表达式],(*P)[5]
//指针数组,格式:数据类型* 指针名[常量表达式],指针指向数组第n号元素的地址

//指针和引用:大多数情况下具备同等的操作能力
//指针:指向一块内存,内容是所指内存的地址;
//引用:引用是某块内存的别名。
//选择使用、区别对待:
/*
1、引用必须与一个变量绑定,不存在没有任何引用目标的引用,使用中出现什么都不指向的情况就使用指针。若一个变量肯定指向一个对象,则选择引用
2、引用仅仅是一个变量实体的别名,因此使用之前,不需要检测其合法性,但指针使用之前必须检测指向的对象是否为空。
3、指针可以重新赋值,指向新的对象,但引用在初始化以后就不可以改变指向对象了。
4、指针可以 指向数组的地址来代替数组使用,但引用不可以代替数组,引用只能指向数组中的某个元素。
*/

//动态内存分配
/*
c++中通过关键字new和delete来实现程序的动态内存分配和释放。
格式:内存标识符 *指针名=new 类型标识符(初始值)  int *p=new int(10) 还可以为一个数组分配内存,int* p=new int[10],数组的长度为10
释放:delete 指针名,  数组释放:delete []指针名    
*/

C++指针和数组和动态分配内存相关推荐

  1. C与C++中二维数组的动态分配内存方法

    最近一直被二维数组的动态内存分配和赋值搞得有点昏,还是记下来,供以后查看. 一.C++中动态分配与释放二维数组 1.二维都未知 #include <iostream>using names ...

  2. C语言数组的动态分配内存和静态分配内存

    在日常的编程中,我们难免会用到数组,很多时候由于静态开辟数组空间,导致很多空间浪费又或是空间不足,那么这时候就需要用到动态开辟数组内存.下面就介绍这两种初始化数组的方式: 一.静态分配 指定数组长度 ...

  3. C/C++之动态分配内存

    C/C++之动态分配内存 c语言中,一般决定了变量的类型,就自动给决定了其作用域和存储时期,系统会自动给每个变量分配内存,在变量超出作用域和存储时期后,自动释放该变量所占用的内存. 除了自动分配内存, ...

  4. C语言指针和数组概述

    几乎每次讲课讲到指针和数组时,我总会反复不停的问学生:到底什么是指针?什么是数组?他们之间到底是什么样的关系.从几乎没人能回答明白到几乎都能回答明白,需要经历一段"惨绝人寰"的痛. ...

  5. 哈工大c语言指针实验题,C语言程序设计_哈工大(2):指针与数组.pdf

    圳 职 业 技 术 学 院Shenzhen Polytechnic 七单元(2):指针与数组 教学内容 指针与数组 教学目标 应知 数组的指针的意义,数组元素的指针的意义,数组名作函 数参数 应会 通 ...

  6. 二维数组动态分配内存

    二维数组动态分配内存 C 二维数组动态分配和释放 (1)已知第二维 Code-1 char (*a)[N];//指向数组的指针 a = (char (*)[N])malloc(sizeof(char ...

  7. c语言动态的申请矩阵存储空间,C语言中二维数组如何申请动态分配内存

    C语言中二维数组如何申请动态分配内存: 使用malloc函数,先分配第一维的大小,然后再循环分配每一维的大小 #include #include int main() { int **a; int i ...

  8. 指针学习十三——指针动态分配内存

    动态内存分布函数 定义在stdlib.h里 1.动态存储分配函数malloc( ) void *malloc(unsigned size) 再内存的动态存储中分配一连续空间,长度为size.申请成功, ...

  9. 【C 语言必知必会】内存管理、动态分配内存、野指针

    C 语言内存管理.动态分配内存.野指针 文章目录 C 语言内存管理.动态分配内存.野指针 前言: 1.内存分区 1.1 代码区 1.2.1 全局初始化数据区(静态数据区data段) 1.2.2 未初始 ...

最新文章

  1. python:自动化测试 playwright 库上传和下载
  2. Go语言中的匿名函数和闭包的样子
  3. 未来计算在“云-端”
  4. MyBatis的修改数据操作
  5. (vue基础试炼_01)使用vue.js 快速入门hello world
  6. 比特飞使用的是什么主题
  7. Oracle ERP流程概览
  8. hp 服务器可以安装win7系统安装失败,如何解决win7hp1213打印机安装失败的问题
  9. C++ 正则表达式教程:C++ 中的正则表达式与示例
  10. 完成端口(CompletionPort)详解
  11. DBSCAN聚类算法的实现
  12. matlab 门限回归模型,门限回归及Stata操作汇总与空间门槛回归模型简介
  13. 在Linux Ubuntu上编译DNX
  14. 管理是管事,领导是带人!
  15. 最长可重叠的重复子串(2)
  16. TM卡 DS1990A读写程序
  17. setTimeout 实现 setInterval
  18. 采访Clone Detective项目创始人Immo Landwerth
  19. sublime检测c语言语法错误,SublimeLinter-csslint 不检查基本的语法错误?
  20. ntdll中的zw函数和krl里的zw函数中有相同的ssdt服务号

热门文章

  1. 黑群晖vmm专业版_Virtual Machine Manager 专业版打造高效安全虚拟环境
  2. 尼康日本拟裁员约一千人 涉及半导体制造业务
  3. ceentos5.5 配置samba服务用户组
  4. 通过编译php为httpd的模块实现lamp
  5. js判断客户浏览器类型,版本
  6. 09hibernate_session_flush
  7. LaTeX tikz初探——利用emoji画GPS卫星3D分布图(3)
  8. android 查看gpu频率_借骁龙 855 Plus,聊聊 CPU / GPU 怎样影响手机游戏性能
  9. matlab的小波分析,Matlab下小波分析wavelet常用命令
  10. java file 字典查询_File listFiles