c++语法基础-数组和常用函数
C++中数组的相关知识,以及一些常用的函数!
一、数组的定义
- 函数内部的数组是存储在栈当中,有长度限制 上限系统默认为 1M
- 函数外的数组存储在堆当中 ,无长度限制 上限根据电脑内存决定
- 函数内的数组系统会分配随机值 ,但是:如果在函数内定义一个int a[100] ={0}; 的数组,因为数组长度为100,存在1个0,不存在的自动补为0
- 函数外的数组无论多长一定是0
- 数组下标从0开始
二、一维数组
一维数组很简单,如 int a[10] ,将数组a看作一个可以存储10个变量的容器,可以为每个变量单独赋值! 分析如下:
a[0]:1
a[1]:2
a[2]:3
…
a[9]:9
三、二维数组
二维数组就是相当于一维数组当中的每一个变量中存储一个数组,
例:
int a[3][4] 就是一个二维数组,分析如下:
a[0]:{1,2,3,4}
a[1]:{1,2,3,4}
a[2]:{1,2,3,4}
四、常用函数
swap函数
- swap(a,b) :交换a、b变量的值
reverse函数
存在于#include<algorithm>
库当中,
- rverse函数用于反转在[first,last)范围内的顺序(包括first指向的元素,不包括last指向的元素)
- reverse函数无返回值
例如:
#include<iostream>
#include<cstdio>
#include<algorithm> //包含swap()、reverce()等函数
using namespace std;
int main(){
int a[100];
int n,k;
cin>>n>>k;
for(int i=0;i<n;i++) cin>>a[i];
reverse(a,a+n); //a是0开始
reverse(a,a+k);
reverse(a+k,a+n);
for(int i=0;i<n;i++) cout<<a[i];
}
// 例子:1 2 3 4 5
//第一步:5 4 3 2 1
//第二步:4 5 3 2 1
//第三步:4 5 1 2 3
memset函数
/*
memset的使用!其在函数库<cstring>当中
*/
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main(){
int a[10];
memset(a,0,sizeof a); //memset初始化数组!
// 第一位是数组的开始位置,
// 第二位代表将数组的每个字节初始化为0,
// 第三位引入操作符sizeof 用来计算数组占用的字节长度
for(int i=0;i<10;i++) cout<<a[i]<<" ";
return 0;
}
memcpy函数
/*
memcpy的使用! 其在函数库<cstring>当中
*/
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main(){
int a[10],b[15]={0}; //此时b是一个长度为15全为0的数组
for(int i=0;i<10;i++){
a[i]=i;
}
memcpy(b,a,sizeof a);//memcpy复制数组!
// 第一位是待赋值数组的,
// 第二位代赋值数组,
// 第三位引入操作符sizeof 用来计算需要复制的长度
for(int i=0;i<15;i++) cout<<b[i]<<" ";
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现