数组,就是把相同数据类型的变量组合在一起而产生的数据集合。
数据类型 数组名[数组大小];
数据类型 数组名[数组大小]={初值1,初值2, …};
数据类型 数组名[]={初值1,初值2, … ,初始值n};
需要给出用逗号隔开的从第一个元素开始的若干个元素的初值,并用大括号
括住,后面未被赋初值的元素一般情况默认初值为0。
如果数组一开始没有赋初值,数组中的每个元素都可能会是一个随机数。
如果想要给整个数组都赋初值0,只需要把第一个元素赋为0。
两个数组间不能直接用“=
”运算符互相赋值,只能在数组元素之间互相赋值。
在定义一维数组时,如果没有指定数组元素的个数,则编译程序会将数组长度按照初值的个数自动决定。
sizeof(arr)
cout << arr << endl;
#include
using namespace std;
int main(){
int arr[5] = {4,6,2,3,8};
//求数组最大值
int max = 0;
for(int i = 0; i < 5;i++){
if(arr[i] > max){
max = arr[i];
}
}
cout << max << endl;
//数组逆置
int start = 0;
int end = sizeof(arr)/sizeof(arr[0]) -1;
while(start < end){
int tmp = arr[start];
arr[start] = arr[end];
arr[end] = tmp;
start++;
end--;
}
for(int i = 0; i < sizeof(arr)/sizeof(arr[0]);i++){
cout << arr[i] << endl;
}
return 0;
}
#include
using namespace std;
int main(){
int nums[] = {4,2,0,5,1,7,3,8,9,6};
int size = sizeof(nums)/sizeof(nums[0]);
for(int i=0; i<size-1;i++){
for(int j=0; j< size-i-1; j++){
if(nums[j]>nums[j+1]){
int tmp = nums[j+1];
nums[j+1] = nums[j];
nums[j] = tmp;
}
}
}
for(int i=0; i<size;i++){
cout << nums[i] << endl;
}
return 0;
}
数据类型 数组名[行数][列数];
数据类型 数组名[行数][列数] = { {数据1,数据2 }, {数据3,数据4} };
数据类型 数组名[行数][列数] = { 数据1,数据2,数据3,数据4 };
数据类型 数组名[][列数] = { 数据1,数据2,数据3,数据4 };
int name[2][2]类似于{{0},{0}}
// 二维数组
int nums[2][3] = {{1,2,3},{4,5,6}};
cout << nums << endl;
cout << sizeof(nums) << endl;
cout << &nums[0][0] << endl;
//输出
//0x7fff55cbf780
//24
//0x7fff55cbf780
如果数组大小较大(大概106级别),则需要将其定义在主函数外面,否则会使程序异常退出,原因是函数内部申请的局部变量来自系统栈,允许申请的空间较小;而函数外部申请的全局变量来自静态存储区,允许申请的空间较大。
C++多维数组下标的设置,只允许第一维可以省略不定义,其他维数的下标则都必须清楚地定义出长度。
int arr[ ][3]={{1,2,3}, {2,3,4}}; // 合法的声明
int arr[2][ ]={{1,2,3}, {2,3,4}}; // 不合法的声明
memest()
#include
memset(数组名,值,sizeof(数组名));
memset
赋0或-1。memset
使用的是按字节
赋值,即对每个字节赋同样的值。fill()
fill
。{'a',‘b'}
。char st1[26];
st1="1234567"; //错误的语法,因为无法直接把字符串常数值给数组正确的方法是使用strcpy()函数来给它赋予初值:

strcpy(st1, ”1234567”);
#include
string 字符串名称(个数,字符) ; //声明有重复字符个数的字符串
string 字符串名称1(字符串名称); //声明以字符串名称的字符串作为字符串名称1的初值
string 字符串名称1(字符串名称,起始位置,长度);
//声明字符串名称的部分字符串作为字符串名称1的初值,但此声明方式的起始位置和长度是从0开始算起的
1⃣️ strlen()
strlen()
函数可以得到字符数组中第一个\0
前的字符的个数。strlen(字符数组);
2⃣️ strcmp()
strcmp()
函数返回两个字符串大小的比较结果,比较原则是按字典序。strcmp(字符数组1,字符数组2);
strcpy
函数可以把一个字符串复制给另一个字符串。strcpy(字符数组1,字符数组2);
\0
。4⃣️ strcat()
strcat()
可以把一个字符串接到另一个字符串后面。strcat(字符数组1,字符数组2);