c++核心-字符串、向量和数组及指针详解

关于STL的内容后面再详细介绍,string和vector都是标准模板库的内容。
数组是C的复合类型(可能只有我这么叫),一组数据,空间连续,所以由开始也有结束,从0开始,到n-1结束。注意别越界,因为是从0开始的。
string和vector内部的保存数据的空间也是一个数组,所以空间也是连续的,可以看做数组的封装,同时提供了很多便利的操作,因为便利,所以也会一定程度减少自己犯错误的机会。
空间连续所以可以通过下标(随机,所谓随机,就是可以直接访问,不需要从头一个一个找下来才能找到)访问。因为跟数组一样,所以也是从0开始计算位置的。
数组是一组元素,数组名可以用作数组首个元素的指针,下标操作,类似数组首个指针+n(下标)
取数组的地址,获得的是数组类型,这个要注意,即取复合类型的地址,指向的是复合类型,正如int**是指向int*的指针一样,取数组的地址获取的指针是指向数组的指针。指向数组的指针+1,是数组的首地址加上整个数组长度,而不是元素的长度。
趁着这个机会,好好讲下指针(待续。。。要上班了。)

原文地址:https://www.cnblogs.com/d-dream/p/12105455.html

时间: 2024-08-27 08:00:30

c++核心-字符串、向量和数组及指针详解的相关文章

C语言核心之数组和指针详解

寒假要开始猛刷<剑指offer>,先回顾一下C语言基础做个热身. 指针 相信大家对下面的代码不陌生: 1 int i=2; 2 int *p; 3 p=&i; 这是最简单的指针应用,也是最基本的用法.再来熟悉一下什么是指针:首先指针是一个变量,它保存的并不是平常的数据,而是变量的地址.如上代码,指针p中保存的是整型变量i的地址信息. 接下来看如何定义一个指针,既然指针也是一个变量,那么它的定义也和其它变量一样定义:如: int *p: .'*' 是间接寻址或间接引用运算符.上例中我们还

C/C++数组和指针详解

/****************************************************************/ /*            学习是合作和分享式的! /* Author:Atlas                    Email:[email protected] /*  转载请注明本文出处: *  http://blog.csdn.net/wdzxl198/article/details/9087497 /*************************

c语言数组与指针详解(上)

彻底搞懂c语言数组与指针 部分引用 c语言指针怎么理解 知乎 程序设计入门----c语言 (浙江大学翁恺) <c primer plus>第六版 基础知识 1. 指针基础 &:代表对变量取地址 int*或char*或者把这个星号紧贴着变量比如int *a = &b: 代表新建一个用来储存地址的变量,这也代表&b这个值的类型是int*. int *a, b 或 int* a, b 中只有a是int指针类型,b是int整型. 关于电脑大小端的讨论:大端是指是指数据的高字节,

指针数组,数组指针,指针函数,函数指针,二级指针详解

先看个简单的:char *p,这定义了一个指针,指针指向的数据类型是字符型,char  *(p)定义了一个指针P: char *p[4], 为指针数组,由于[]的优先级高于*,所以p先和[]结合,p[]是一个数组,暂时把p[]看成是q,也就是char *(q),定义了一个指针q,只不过q是一个数组罢了,故定义了一个数组,数组里面的数据是char *的,所以数组里面的数据为指针类型.所以char *p[4]是四个指针,这四个指针组成了一个数组,称为指针数组,既有多个指针组成的数组. char(*p

指针数组与数组指针详解

转自:https://blog.csdn.net/men_wen/article/details/52694069 指针数组与数组指针详解 1.什么是指针数组和数组指针? 指针数组:指针数组可以说成是"指针的数组",首先这个变量是一个数组,其次,"指针"修饰这个数组,意思是说这个数组的所有元素都是指针类型,在32位系统中,指针占四个字节. 数组指针:数组指针可以说成是"数组的指针",首先这个变量是一个指针,其次,"数组"修饰这

&lt;&lt;C++ Primer&gt;&gt; 第三章 字符串, 向量和数组 术语表

术语表 第 3 章 字符串, 向量和数组 begin: 是 string 和 vector 的成员,返回指向第一个元素的迭代器.也是一个标准库函数,输入一个数字,返回指向该数字首元素的指针. ?? 缓冲区溢出(buffer overflow): 一种严重的程序故障,主要的原因是试图通过一个越界的索引访问容器内容,容器类型包括 string,vector 和 数组等. ?? C 风格字符串(C-style string): 以空字符结束的字符数组.字符串字面值是 C 风格字符串,C风格字符串容易出

C++Study 指针详解

C++指针详解 指针的概念 指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址.要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区.让我们分别说明. 先声明几个指针放着做例子: 例一: int *ptr; char *ptr; int **ptr; int (*ptr)[3]; int *(*ptr)[4]; 指针的类型 从语法的角度看,你只要把指针声明语句里的指针名字去掉,剩下的部分就是这个指针的类

彻底搞定C语言指针详解

1.语言中变量的实质 要理解C指针,我认为一定要理解C中“变量”的存储实质, 所以我就从“变量”这个东西开始讲起吧! 先来理解理解内存空间吧!请看下图: 内存地址→ 6 7 8 9 10 11 12 13 ----------------------------------------------------------------- ... | | | | | | | |.. ------------------------------- ---------------------------

Delphi指针详解

Delphi指针详解2007-12-04 06:08:57|  分类: DLL学习 阅读91 评论0   字号:大中小 订阅 大家都认为,C语言之所以强大,以及其自由性,很大部分体现在其灵活的指针运用上.因此,说指针是C语言的灵魂,一点都不为过.同时,这种说法也让很多人产生误解,似乎只有C语言的指针才能算指针.Basic不支持指针,在此不论.其实,Pascal语言本身也是支持指针的.从最初的Pascal发展至今的Object Pascal,可以说在指针运用上,丝毫不会逊色于C语言的指针. 以下内