C++数组

一、一维数组

数组声明时应指出以下三点:

  • 存储在每个元素的值的类型
  • 数组名
  • 数组中的元素个数

通用格式:typeName arrayName[arratSize]
初始化

  1. 只有在定义数组时才能初始化
int a[4] = {1,2,3,4};
int b[4];
b[4] = {1,2,3,4}  //错误
b = a;   //错误
  1. 初始化数组时([])内可以为空
    int a[] = {1,2,3,4,5};
  2. 初始化时可以只对部分初始化,未初始化的值将被设置为0。
  3. 数组的下标从0开始,所以数组的最后一个元素为a[N - 1]。
    ** 用不同方式访问数组**
#include <iostream>
using namespace std;
int main()
{
	int a[] = {1,3,5,7,9},i,*p;
	for(i = 0;i < 5;i++)    //下标访问
	{
		cout << "a[" <<  i << "]=" << a[i] << '\t' ;
	}
	cout << endl;
	
	for(p = a,i = 0;i < 5;i++)//指针变量下标访问
	{
		cout << "a[" << i << "]=" << p[i] << '\t' ;
	}
	cout << endl;
	
	for(i = 0;i < 5; i++)  //指针方式访问
	{
		cout << "a[" << i << "]=" << *(a + i) << '\t\;
	}
	cout << endl;
	for(p = a;p< a + 5;p++)//指针变量间址访问
	{
		cout << "a[" << p - a << "]=" << a[p - a] << '\t';
	}
	cout << endl;
}

二、二维数组

表达式:类型 数字名 [表达式1][表达式2]

  1. 第一维是行,第二维是列。
int a[2][3] = {{1,2,3},{4,5,6}};
int a[2][3] = {1,2,3,4,5,6};
  1. 可以只对部分元素初始化
int x[2][3] = {{1,2},{3}}
  1. 可以省略高数组的最高维长度说明
int ad[][3] = {1,2,3,4,5,6};
int at[][2][3] = {1,2,3,4,5,6,7,8,9,10,11,12};

但不能写成

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

三、动态存储

1. 动态存储 :根据需要在程序运行时建立和撤销对象。
2. new 和 delete 操作符
一般语法形式:

指针变量 = new 类型
delete  指针变量

如:

int *p1 = new int(0);
char *p2 = new char;
float *p3 = new float;
		//...
delete p1;
delete p2;
delete p3;

申请动态数组,释放空间用delete[]操作:

int *p4 = new int [4];
delete []p4;

四、字符串

1. 用字符数组存放字符串
(1)逐个字符对数组元素赋初始值

char str1[10] = {'S','t','u','d','e','n','t'};

(2)用串常量初始化

char str2[10] = {"Student"};
char str3[] = {"Student");
char str4[] = "Student";

注意:C++对串常量自动添加结束标志’\0’,所以str2[7] = ‘\0’,str2的长度为8。
2.字符串处理函数
头文件:cstring(string.h)

函数说明
strlen(Str)计算有效字符的个数,空字符不包含在内
strcpy(Des,Src)串复制,将Src所指向的字符串复制到Des中
strcat(Des,Src)串连接
strcmp(Str1,Str2)串比较。以字典顺序方式比较两个字符串。若相等,返回0;若Str1大于Str2,则返回正数;若Str1小于Str2,则返回负数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值