一维数组:
一般定义格式:类型名 数组名[常量表达式]; 例如 int a[10]; int a[2*5]; 。 使用方式:数组名[下标] 例如a[3] ,长度为n的数组,其合法下标范围为[0~n-1]。
数组初始化:
- 定义时初始化:
int a[] = {0, 1, 2, 3, 4}; //该方式可以不指定数组长度 。int a[10] = {0, 1, 2, 3, 4}; //只对前5个元素赋值,其余元素值为空 。 - 通过数组名赋值:
a[5] = {0, 1, 2, 3, 4}; for(int i = 0; i < n; i++) cin >> a[i]; //给前n个元素赋值 。
二维数组:
一般定义格式:类型名 数组名[常量表达式1][常量表达式2]; 例如 int b[10][11]; int b[2*5][5*2]; 。 使用方式:数组名[下标1][下标2] 例如b[3][4] 。
数组初始化:
- 定义时初始化:
int b[][2] = {0, 1, 2, 3, 4}; //该方式可以忽略第一个参数,但必须设置第二个参数该 。int b[3][2] = {0, 1, 2, 3, 4}; //只对前5个元素赋值,其余元素值为空 。int b[3][2] = {{0, 1}, {2, 3}, {4}}; - 通过数组名赋值:
b[3][2] = {0, 1, 2, 3, 4}; - 双层for循环进行赋值。
字符数组(char):
一般定义格式:类型名 数组名[常量表达式]; 例如 char c[10]; char c[2*5]; 。 使用方式:数组名[下标] 例如c[3] 。
数组初始化:
- 定义时初始化:
char c[] = {'w', 'i', 'n', 'd'}; //该方式可以不指定数组长度 。char c[10] = {'w', 'i', 'n', 'd'}; //只对前4个元素赋值,其余元素值为空'\0' 。 - 通过数组名赋值:
- 无法通过赋值语句给整个数组赋值。
c[4] = {'w', 'i', 'n', 'd'}; //一般要在末尾添加‘\0'即写为c[5]={'w', 'i', 'n', 'd', '\0'}; 。for(int i = 0; i < n; i++) cin >> char[i]; //给前n个元素赋值 。
常用函数:
- 字符串连接函数:
strcat_s(char c1[], const char c2[]); //新版需要使用更安全的_s函数
- 功能:将c2连接到c1后面。
- 注意事项:使用时会自动检查连接后是否超长,超过c1长度时会弹出异常。
- 字符串复制函数:
strcpy_s(char c1[], const char c2[]); //新版需要使用更安全的_s函数
- 功能:将c1复制为c2的值。
- 注意事项:使用时会自动检查是否越界,c2超过c1长度时会弹出异常。
- 字符串比较函数:
strcmp(const char c1[], const char c2[]);
- 功能:比较c1与c2的大小,
c1=c2时return 0; c1>c2时return 1; c1<c2时return -1; - 注意事项:直接使用
c1>c2 时,进行的是地址比较。 - 字符串长度函数:
strlen(const char c[]);
字符串数组(string):
使用时需要#include<string> 。 一般定义格式:类型名 数组名[常量表达式]; 例如 string s[10]; string s[2*5]; 。 使用方式:数组名[下标] 例如s[3] 。
数组初始化:
- 定义时初始化:
string str[] = {"wind", "test"}; //该方式可以不指定数组长度 string str[10] = {"wind", "test"}; //只对前2个元素赋值,其余元素值为空 - 通过数组名赋值:
str[1] = "wind"; 。str[1[[0] = 'e'; //此时str[1] = "eest" 。
常用运算:
- 字符串赋值:
str1 = str2; //<string>库中重载了'='运算符使得可以直接赋值 。 - 字符串相加:
str = str1 + str2; //<string>库中重载了'+'运算符使得可以直接相加 。 - 字符串比较:可直接使用
>、<、>=、<=、==、!= 进行比较原因同上。 - 字符串长度函数:可使用
str.length(); 得到数组c[]的长度。
用数组做函数参数:
可以使用数组做实参/形参。使用时一维数组直接传地址,二维数组则需要传数组名。(使用数组做实参时,数组内的值会一同改变)
int array[3][4]={...};
int func1(int array[][]);
int func2(int array[3][4]);
int func3(int array[][4]);
int func4(int array[]);
|