c++语法基础-数组和常用函数

C++中数组的相关知识,以及一些常用的函数!

一、数组的定义

  1. 函数内部的数组是存储在栈当中,有长度限制 上限系统默认为 1M
  2. 函数外的数组存储在堆当中 ,无长度限制 上限根据电脑内存决定
  3. 函数内的数组系统会分配随机值 ,但是:如果在函数内定义一个int a[100] ={0}; 的数组,因为数组长度为100,存在1个0,不存在的自动补为0
  4. 函数外的数组无论多长一定是0
  5. 数组下标从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;
} 
posted @ 2022-01-23 20:36  爪洼ing  阅读(206)  评论(0编辑  收藏  举报