C++学习笔记四--数组和引用

目录

前言

一、数组

1.一维数组

1.定义

2.初始化

3.访问数组元素

2.二维数组

1.定义

2.初始化

3.访问二维数组元素

3.多维数组

1.定义

2.访问

4.字符数组

1.string类型与字符数组

 1.string类型

2.字符数组

2.常用字符串函数

1.strcpy函数

2.strcat函数

3.strcmp函数

4.strlen函数

5.strstr函数

二、指针

1.指针和地址

1.指针定义

2.指针运算

2.指针和数组

三、引用

1.引用的概念

2.用引用传递函数参数

四、动态内存分配


前言

        记录C++中的数组、指针和引用。

一、数组

        数组是有固定数目元素组成的数据结构,是一组具有相同数据类型的数据的有序集合。

1.一维数组

1.定义

        定义数组格式为:

数据类型 数组名 [数组长度];

eg:

int a[100];

        数组中的元素在内存中是连续排列的。

数组元素的下标是从0开始到数组长度减1,例如在上面的例子中,a的下标是0~99.

定义数组的时候要指明数组的长度。

数组的大小必须是产量,不能还有变量。

2.初始化

        数组初始化是给数组元素赋初值。数组的初始化是在编译阶段进行的,所以相比运行时初始化,提高了效率。数组的初始化有以下几种方法:

1.定义数组的时候对数组元素初始化:

int a[10] = {0,1,2,3,4,5,6,7,8,9,10};

2.只给一部分元素初始化

int a[10] ={1,2,3};

3.一个数组中的全部元素赋值为0

int a[10]=[0];

或者

int a[10] = {0,0,0,0,0,0,0,0,0,0};

4.对全部数组元素赋初值,可以不指定数组长度。

int a[] = {1,2,3,4,5};

3.访问数组元素

访问数组元素的格式为:

数组名[数组下标];

eg.

a[1]=10;

2.二维数组

二维数组是特殊的多维数组。

1.定义

        二维数组定义格式如下:

数据类型 数组名[常量表达式1][常量表达式2];

        eg.我们定义一个3行4列的数组:

int a[3][4];

        数组在内存中的存放方式是按行连续存放的,每一行的结尾和下一行的第一个元素是紧挨着存放的。

2.初始化

        二维数组初始化格式如下:

数据类型 数组名[常量表达式1][常量表达式2] = {初始化数据};

        二维数组初始化有4种方式:

1.按行给二维数组赋值

int a[3][4] = {{1,2,3,4},{1,2,3,4},{1,2,3,4},};

2.把所有数据写在大括号赋值

int a[3][4] = {1,2,3,4,1,2,3,4,1,2,3,4};

3.可以对数组中的福分元素赋值

int a[3][4]={{1},{5},{9}};

4.只指定列数,不指定行数

int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12};

3.访问二维数组元素

        访问二维数组表达式格式如下:

数组名[常量表达式1][常量表达式2];

3.多维数组

1.定义

        多维数组声明格式如下:

数据类型 数组名[表达式1][表达式2][表达式3][表达式4]......[表达式n];

2.访问

        访问多维数组语法如下:

数组名[表达式1][表达式2][表达式3][表达式4]......[表达式n];

4.字符数组

        字符数组是用来存放字符的数组。

1.string类型与字符数组

 1.string类型

使用string需要导入头文件

#include <string>

我们可以使用以下几种方式给字符串赋值:

1.直接赋值

eg.

string str2 = "Hello World!";

2.先定义后赋值

eg.

string str;

str = "Hello World!";

3.使用字符串给字符串赋值

eg.

string str = "Hello World";

string str2 = str;

        字符串不需要指定长度,长度随着字符串长度而改变。除了赋值,可以对字符串变量中的某一字符操作。

2.字符数组

1.定义

字符串定义格式如下:

char 数组名[数组长度];eg.char charArray[10];

字符数组要注意以下几点:

1.给字符数组的各个元素赋值的时候,要在最后加一个'\0',否则不能判断字符串的结束

2.给字符数组指定一个字符串初值,这一点是字符数组特有的

2.常用字符串函数

1.strcpy函数

strcpy函数的原型是:

strcpy(字符数组1,字符数组2);

作用:把字符数组2复制到字符数组1,并且返回字符数组1的首地址.

2.strcat函数

strcat函数的原型是:

strcat(字符数组1,字符数组2);

作用:把字符数组2连接到字符数组1的字符串尾部,结果存放在字符数组1中,并且返回字符数组1的首地址.

3.strcmp函数

strcmp函数的原型是:

strcmp(字符数组1,字符数组2);

作用:把字符数组和字符数组1,从左到右逐个字符比较,知道出现不同的字符或者遇到'\0'为止。

4.strlen函数

strlen函数的原型是:

strlen(字符数串);

作用:返回字符串的长度。

5.strstr函数

strstr函数的原型是:

strstr(字符数组1,字符数组2);

作用:返回字符串相同的子串。

二、指针

1.指针和地址

1.指针定义

        指针就是变量的地址。

        指针变量就是存放地址的变量。

声明格式如下:

数据类型 * 变量名;

给指针赋值有两种方法:

1.定义的时候初始化

eg.

int i;

int *i_pointer = &i;

2.非定义的时候赋值

eg.

int i;

int * i_pointer;

i_pointer = &i;

2.指针运算

        * 取值运算符

        & 取地址运算符

2.指针和数组

        数组的名字代表数组第一个元素的指针,即数组第一个元素的首地址,也就是数组的首地址。

eg.

int a[10];

int * p;

         数组名可以作为参数进行传递。

三、引用

1.引用的概念

        引用是一种新的变量类型,它的作用是为一个变量起别名。

        格式如下:

类型说明 & 引用名 = 目标量;

eg.

int i = 2;//定义i是整型变量

int &j = i;//声明j是i的引用

2.用引用传递函数参数

        引用的一个重要用途就是做为函数的参数。

四、动态内存分配

        C++中的动态内存分配是通过new和delete实现的。

1.使用new获取动态内存空间

格式如下:

指针变量 = new 类型;

eg.

int * a;

a = new int(10);

该代码的含义是分配一个int型变量给指针变量a,然后对其赋初值10。

我们还以使用new对数组进行动态分配,格式如下:

指针变量 = new 类型[元素个数];

eg.

int * a;

a = new int[10];

2.使用delete删除动态内存空间

         使用new声明的内存空间使用完之后,必须显式的使用delete删除。

eg.

int * a;

a= new int;

...

delete a;

  • 20
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我叫柱子哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值