首页 > 编程语言 >24、C++的一维数组概念

24、C++的一维数组概念

时间:2024-03-30 13:03:29浏览次数:26  
标签:24 一维 int void 数据类型 C++ 数组名 数组 长度

数组是一组数据类型相同的变量,可以存放一组数据。

1、创建数组

声明数组的语法:

数据类型 数组名[数组长度];

注意:数组长度必须是整数,可以是常量,也可以是变量和表达式。
C90规定必须用常量表达式指明数组的大小,C99允许使用整型非常量表达式。经测试,在VS中可以用用整型非常量表达式,不能用变量;但是,Linux中还可以用变量。

#include <iostream>
using namespace std;

int main()
{
	int n = 20;

	int arr1[10];	//定义一个数组,长度为 10
	int arr2[n];	//定义一个数组,长度为 n

	return 0;
}

2、数组的使用

可以通过下标访问数组中元素,数组下标从0开始。
数组中每个元素的特征和使用方法与单个变量完全相同。
语法:

数组名[数组下标]

注意:
(1)数组下标也必须是整数,可以是常量,也可以是变量。
(2)合法的数组下标取值是:0~(数组长度-1)。 

3、数组占用内存的情况 

数组在内存中占用的空间是连续的。
用sizeof(数组名)可以得到整个数组占用内存空间的大小(只适用于C++基本数据类型)。

#include <iostream>
using namespace std;

int main()
{
	int n = 20;

	int arr1[10];	//定义一个数组,长度为 10
	int arr2[n];	//定义一个数组,长度为 n

	cout<< sizeof(arr1) <<endl;	//输出 40,因为一个 int 占 4字节,10 个 int 一个占 40字节
    
    return 0;
}

4、数组的初始化 

声明的时候初始化:

数据类型 数组名[数组长度] = { 值1,值2,值3, ...... , 值n};
数据类型 数组名[ ] = { 值1,值2,值3, ...... , 值n};
数据类型 数组名[数组长度] = { 0 };  // 把全部的元素初始化为0。
数据类型 数组名[数组长度] = { };    // 把全部的元素初始化为0。

注意:如果{}内不足数组长度个数据,剩余数据用0补全,但是,不建议这么用,你可能在数组中漏了某个值。如果想把数组中全部的元素初始化为0,可以在{}内只填一个0或什么也不填。
C++11标准可以不写等于号。 

5、清空数组 

用memset()函数可以把数组中全部的元素清零。(只适用于C++基本数据类型)
函数原型:

void *memset(void *s, int c, size_t n);

注意,在Linux下,使用memcpy()函数需要包含头文件#include <string.h> 

6、复制数组

用memcpy()函数可以把数组中全部的元素复制到另一个相同大小的数组。(只适用于C++基本数据类型)
函数原型:

void *memcpy(void *dest, const void *src, size_t n);

注意,在Linux下,使用memcpy()函数需要包含头文件#include <string.h> 

标签:24,一维,int,void,数据类型,C++,数组名,数组,长度
From: https://blog.csdn.net/m0_69452758/article/details/137168999

相关文章

  • C++类继承基础5——继承中的类作用域
    继承中的类作用域每个类定义自己的作用域,在这个作用域内我们定义类的成员。当存在继承关系时,派生类的作用域嵌套在其基类的作用域之内。如果一个名字在派生类的作用城内无法正确解析,则编译器将继续在外层的基类作用域中寻找该名字的定义。派生类的作用域位于基类作用域之内......
  • 快递员的烦恼【华为OD机试JAVA&Python&C++&JS题解】
    一.题目-快递员的烦恼快递公司每日早晨,给每位快递员推送需要送到客户手中的快递以及路线信息,快递员自己又查找了一些客户与客户之间的路线距离信息,请你依据这些信息,给快递员设计一条最短路径,告诉他最短路径的距离。注意:不限制快递包裹送到客户手中的顺序,但必须保证都送......
  • 园区参观路径【华为OD机试JAVA&Python&C++&JS题解】
    一.题目-园区参观路径园区某部门举办了FamilyDay,邀请员工及其家属参加;将公司园区视为一个矩形,起始园区设置在左上角,终点园区设置在右下角;家属参观园区时,只能向右和向下园区前进;求从起始园区到终点园区会有多少条不同的参观路径;输入描述:第一行为园区长和宽;后面每一行表示......
  • L2-046 天梯赛的赛场安排 团体程序设计天梯赛-练习集 c++ 易懂 模拟
    天梯赛使用OMS监考系统,需要将参赛队员安排到系统中的虚拟赛场里,并为每个赛场分配一位监考老师。每位监考老师需要联系自己赛场内队员对应的教练们,以便发放比赛账号。为了尽可能减少教练和监考的沟通负担,我们要求赛场的安排满足以下条件:每位监考老师负责的赛场里,队员人数不得......
  • 【C++】C到C++的入门知识
    目录1、C++关键字2、命名空间2.1命名空间的定义2.2命名空间的使用2.2.1 加命名空间名称及作用域限定符2.2.2使用using将命名空间中某个成员引入2.2.3使用usingnamespace命名空间名称引入3、C++输入&输出4、缺省参数 4.1缺省参数的概念4.2缺省参数的分类......
  • 2024.3.29 模拟赛总结
    贤者之石T435273思路:一维线性DP,dp[i]表示以i结尾的最大值,dp[i]=max(1,dp[sqrt(i)]+1);琪露诺的位运算教室T435274思路:数论题,尝试打表,a[i][j]为i&j是否大于等于i^j。1000000000001100000000011000000000001111000000......
  • 双向链表C++
    今天写了双向链表..........写的头好晕..........看来链表还是要多加练习这个双向链表完成了增删改查,并且最后销毁链表环境VScode#include<iostream>#include<cstring>usingnamespacestd;//结点类classNode{public:stringip;//客户端ipstringn......
  • leetcode-面试经典150题-42-接雨水(双指针c++)
    第一遍做的时候(没有看题解)我想到的思路就是遍历每一个凹下去的部分,计算能接到的雨水数量,然后累加,left,right分别是凹点的左右边界下面是代码:classSolution{public:inttrap(vector<int>&height){intn=height.size();intans=0;for(int......
  • C++堆详细讲解
    介绍二叉堆是一种基础数据结构,主要应用于求出一组数据中的最大最小值。C++的STL中的优先队列就是使用二叉堆。堆的性质: 1.堆是一颗完全二叉树;2.堆分为大根堆和小根堆(这里不讨论那些更高级的如:二叉堆,二叉堆,左偏树等等)3.大根堆满足每个节点的键值都小于等......
  • CrossOver2024最新免费版虚拟机软件 Mac和Linux系统上运行Windows 应用/游戏 CrossOve
    CrossOver是一款由CodeWeavers公司开发的,运行在Mac和Linux操作系统下,能够模拟Windows系统应用运行环境的软件。它不需要用户单独安装Windows操作系统,就能让Windows平台上的应用程序在Mac和Linux上顺畅运行。CrossOver在技术上使用了Wine(Windows模拟器)的代码,通过提供一个兼容层,......