C++——指针与数组
1.数组名不是指针,神似指针(可以将数组名直接赋值给指针)
(1)数组名的内涵在于其指代实体是一种数据结构,这种数据结构就是数组;
(2)数组名的外延在于其可以转换为指向其指代实体的指针,而且是一个指针常量;
(3)指向数组的指针则是另外一种变量类型(在WIN32平台下,长度为4),仅仅意味着数组的存放地址!
2.数组名只能被看作一个指针常量,不能被修改
int intArray[10]; intArray++;//错误
3.作为函数形参
(1)数组名作为函数形参时,在函数体内,其失去了本身的内涵,仅仅只是一个指针;
(2)很遗憾,在失去其内涵的同时,它还失去了其常量特性,可以作自增、自减等操作,可以被修改。
所以,数组名作为函数形参时,其全面沦落为一个普通指针!
4.a是数组时,a 和 &a的区别
int a[5]={0,1,2,3,4};
int *p=a;//定义一个int型指针p,指向第一个元素的地址
int aa[2][5]={0,1,2,3,4,
5,6,7,8,9};
int (*p)[5]=aa;//定义一个int [5] 型指针p,等价于int (*p)[5]=&aa[0];
5.数组,引用和指针
int *ptrs[10];//Y,数组,10个int型指针
int &refs[10];//N,没有引用的数组,
int (*Parray)[10]=&arr; //指针,10个int型数据的数组——————和数组名的区别?
int (&Parray)[10]=arr;//数组的引用,10个int型数据的数组————和数组名的区别?
int *(&Parray)[10]=arr;//数组的引用,10个int型指针的数组————和数组名的区别?
int ia[]={0,1,2,3,4,5}; auto ia2(ia);//ia2是一个整型指针int *,只想ia的第一个元素: auto ia2(&ia[0]) ia2=42;//× decltype(ia) ia3={0,1,2,3,4,5};//ia3是一个6个整数的数组 ia3=p;//不能把整形指针赋值给数组
5.1数组的begin和end操作
constexpr size_t sz=5; int arr[sz]={1,2,3,4,5}; auto n=end(arr)-begin(arr);//n=5,类型为带符号的ptrdiff_t(头文件cstddef)
5.2 数组的下标和指针
int *p=&a[2]; int j=p[1];//a[3] int k=p[-2];//a[0]
6.
unsigned score[3]={4,2,3}; for (auto i : score) cout<<i<<" ";//4,2,3
原文地址:https://www.cnblogs.com/yrm1160029237/p/10864379.html
- Golang语言 xml解析实例
- 机器学习算法实现解析——libFM之libFM的模型处理部分
- Go语言使用protobuf数据通信--师出同门,懂的人理解吧
- 虚拟化平台cloudstack(6)——使用maven:jetty调试
- 虚拟化平台cloudstack(7)——新版本的调试
- 一行代码,Pandas秒变分布式,快速处理TB级数据
- 机器学习算法实现解析——word2vec源码解析
- 从零开始创建一个基于Go语言的web service
- 转--Golang项目邮件发送模块代码分享
- 虚拟化平台cloudstack(8)——从UI开始
- 使用oracle的大数据工具ODCH访问HDFS数据文件
- UWP基础教程 - XAML开篇
- UWP基础教程 - XAML依赖属性和附加属性
- GO语言学习:动态Web
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Java——深入分析类与对象(封装性、构造方法与匿名对象、简单Java类开发原则)
- Java——类与对象(基本概念、定义、内存分析、引用传递)
- Java——Stream数据流
- JavaWeb——MyBatis框架之连接池原理、MyBatis事务提交设置、动态SQL语法总结
- 8种ETL算法归纳总结,看完这些你就全明白了
- JavaWeb——Maven基础之详细总结,从零开始搭建Maven工程,包含一些常见的坑org.eclipse.jdt.internal.compiler.classfmt.ClassFormatEx
- JavaWeb——Redis数据库之Jedis操作5种类型数据的使用总结与前端Ajax获取Redis缓存数据的案例实战(结合了MySQL数据库)
- Java——数据库编程JDBC之快速入门吐血总结及各关键对象详解(提供了JDBCUtils工具类)
- MySQL数据库——事务的操作(开启、回滚、提交)、特征、隔离级别基础总结
- MySQL数据库——数据库的设计(多表之间的关系与三大范式)与备份还原
- JavaWeb——JSP入门学习(JSP基本概念、JSP脚本、JSP内置对象)
- MySQL数据库——数据库CRUD之基本DML增删改表操作及DQL查表操作
- JavaWeb——AJAX异步技术实现方式与案例实战(原生的JS方式、使用JQuery方式)
- JavaWeb——一文带你入门Servlet(生命周期、注解配置方法、IDEA与tomcat的相关配置)
- JavaWeb——JQuery之基础案例实战(实现表格隔行换色、实现全选全不选、QQ表情选择、下拉列表选中条目左右选择功能)