C语言中数组与JS数组的区别

本文对比了C语言和JavaScript中数组的不同,包括一维、二维数组的定义,以及C语言数组的静态特性。详细介绍了C语言中数组的操作方法,如声明、访问和for循环,同时列举了JavaScript中动态数组的几种操作,如pop、push、shift、unshift、splice、slice和concat。
摘要由CSDN通过智能技术生成

C语言中的数组

C语言中有一维数组与二维数组,甚至有多维数组的差别举一个生活中的例子和一个代码例子或许大家就能明白

首先是一维数组

int a[5];//那么a数组里面有5个数字分别是1、2、3、4、5

这就像一个队伍排好队一样

其次再到二维数组

用于储存多行多列的数据

int a[3][4]//这样就可以存储三行四列的数据

//比如 它可以存储像这样
//1 2 3 
//4 5 6
//7 8 9
//10 11 12

它就像一个面,或者就像一个班级里面的座位一样,既有行又有列,而一维数组没有列只有行,这就像一根线。

多维数组跟二维数组一样,这里就不在举例了

C语言操作数组的方法

  1. 声明数组:可以使用int a[10]声明一个整型数组
  2. 赋值,在声明数组的同时,同时赋值给刚刚定义好的初始化的数组,比如:int a[10]=10
  3. 访问数组元素:可以通过数组名+[]的方式访问数组元素,比如:a[1]可以访问第2个数组(注意注意注意:定义一个a[10]的数组,它只能访问a[0],a[1],a[2]....a[9]的数组元素它不能访问a[10]的数组,因为定义a[10]的时候默认a[0]访问的是第一个数组
  4. 使用for循环遍历数组
  5. 获取数组的长度:使用'SIZE'访问数组的长度
  6. 数组作为函数的参数,作为参数传递给函数:
void func(int arr[], int size) {
    for (int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
}

int main() {
    int arr[5] = {1, 2, 3, 4, 5};
    func(arr, 5);
    return 0;
}//在第一个函数中arr[]作为形式参数,之后在main函数中定义一个arr[5]的数组之后再作为实参传递给了func()函数里面

JS中的数组 

不同于C语言中的数组的定义,C语言中的数组是事先定义好的静态数组,不可以在函数和其他地方修改。JS中的数组是动态的可以在任意地方对它进行修改。

JS中操作数组的方法有:

pop()

let fruits = ['apple', 'banana', 'orange'];
   let removedFruit = fruits.pop();
   console.log(removedFruit); // 输出: 'orange'
   console.log(fruits); // 输出: ['apple', 'banana']  

从数组中移除最后一个元素,这就像一个装水果的篮子 ,取出最后一个水果出来。

push()

   let fruits = ['apple', 'banana'];
   fruits.push('orange');
   console.log(fruits); // 输出: ['apple', 'banana', 'orange']

从数组中加入最后一个元素,这就像一个装水果的篮子,在最后面装入一个水果,与pop()操作相反。

shift()

let fruits = ['apple', 'banana', 'orange'];
   let removedFruit = fruits.shift();
   console.log(removedFruit); // 输出: 'apple'
   console.log(fruits); // 输出: ['banana', 'orange']

 从数组中移除第一个元素,这就像一个装水果的篮子,取出第一个水果;

unshift()

let fruits = ['banana', 'orange'];
   fruits.unshift('apple');
   console.log(fruits); // 输出: ['apple', 'banana', 'orange']

 与shift()操作相反,从数组中添加第一个元素,这就像一个装水果的篮子,装入第一个水果。

splice()

let playlist = ["Song1", "Song2", "Song3"];
playlist.splice(1, 0, "Interlude"); // 从索引1开始插入"Interlude",不移除任何元素。现在,playlist为["Song1", "Interlude", "Song2", "Song3"]。

splice()可以从指定位置加入特定元素,当然同时也可以删除特定元素。就像在一个装水果的篮子里面,在特定的位置装入特定的水果

slice()

let movies = ["Movie1", "Movie2", "Movie3", "Movie4"];
let selectedMovies = movies.slice(1, 3); // 取第2和第3个元素,得到的新数组为["Movie2", "Movie3"]。

slice()用于选取数组的一部分,并放回一个新的数组。就像一个在装水果的篮子里面,在特定的位置拿出特定的水果

concat()

let course1 = ["Math", "Science"];
let course2 = ["History", "Geography"];
let combinedCourses = course1.concat(course2); // 合并两个数组得到["Math", "Science", "History", "Geography"]。

concat()用于合并两个或多个数组。不会更改现有数组,而是返回一个新数组,就像在一个装有水果的篮子里面放进另一个篮子的水果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值