C++入门(8):数组、字符串和指针

1 数组

数组用于储存一系列类型相同的元素。

type name[elements] //一维数组的声明格式。

初始化数组
默认情况下,数组中所有元素的值在声明数组时是未确定的。

若要在声明数组时,将数组中的元素初始化为特定的值,可以使用 {} 实现,例如初始化数组 int a[5]:

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

若:

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

则a[3] = 0, a[4] = 0;
C++ 中支持多维数组,多维数组是指二维及以上的数组,其表达式为:

type name[index1][index2][index3]...[indexn]

2 字符串

C++ 支持起源于 C 语言的 C-style 字符串。

例如定义一个可以容纳 10 个 char 型字符的数组:

char ch[10];

注意:null 字符不用手动添加,C++ 在编译的时候会自动添加。
cstring
在 C++ 中有大量用于操作 C-style 字符串的函数,它们集成在头文件 中。其常见的函数:

函数作用
strcpy(s1,s2)复制字符串s2到s1
strcat(s1,s2)将字符串 s2 连接到 s1 末尾
strlen(s)计算字符串 s 长度
strcmp(s1,s2)比较字符串 s1 和 s2 的长度,相同为 0;s1 < s2 为 -1;s1 > s2 为 1
strchr(s1,ch)返回一个指针,指向 s1 中字符 ch 第一次出现的位置
strstr(s1,s2)返回一个指针,指向 s1 中字符串 s2 第一次出现的位置

C++ 标准库中提供了 string 类,它不仅支持 C-style 的所有操作,而且还丰富了其他功能。
在这里插入图片描述
对于字符串来说,常规操作符 + 的功能为 连接。

3 指针

指针是 C++ 从 C 中继承的重要数据类型,它提供了一种较为直接的地址操作手段,使用指针可灵活实现动态内存的分配。
指针变量的声明
指针是一种数据类型,具有指针类型的变量称为 指针变量,它用于存放内存地址。在使用指针之前,需对指针进行声明,其一般形式为:

type *pointer_name;

其中 type 表示所指对象的数据类型,即说明所指内存单元存放的数据类型;* 表示声明一个指针类型的变量;pointer_name 表示指针名。
值得注意的是,指针实际存放的是内存地址,不同类型的指针变量用于指向数据类型不同的变量或常量。

C++ 中提供了两个与地址相关的运算符:* 和 & 。其中 * 称为 指针运算符,用于获取指针所指变量的值,例如 *p 表示指针 p 所指变量的值;& 称为 取地址运算符,用于获取一个对象的地址,例如有变量 i,则 &i 表示 i 的存储地址。
指针的赋值与使用
定义指针后我们仅得到了一个用于存储地址的指针变量,若要确定指针变量存放的内存地址,可以通过给指针赋值实现。其基本形式为:
1.在定义指针时为指针赋值:

type *pointer_name=初始地址;

2.在定义指针后为指针赋值:

type *pointer_name;
pointer_name=初始地址;

其中 初始地址 为某个对象的内存地址,一般使用 &对象名 获取。
引用
引用是指对已存在的变量别名,我们可以使用引用名来指向对象。

引用与指针主要有三个区别:

  • 可以通过 指针名=0 描述一个空指针,但不存在空引用。
  • 指针可在任何时间进行初始化操作,而引用只能在定义时进行初始化操作。
  • 指针变量指向内存的一个存储单元;而引用只不过是原变量的一个别名而已。

声明引用变量的基本格式为:

type &引用名=被指对象名;

& 在这里是标识作用,而非取地址运算符。

#include<iostream>
using namespace std;

int main ()
{
    int acc[2][3] = {2,4,6,8,10,12};
    cout<<acc[1][0]<<endl;
    return 0;
}
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值