C语言部分c,java,python中数组的问题来了,目前c和java基本已经完成了,Python和java的还需要再做补充,然后逐步完善它们
在c语言中,数组可以存储同种类型得数据,在数组中是按照一定顺序存储数据的,c语言中只有数组这种数据结构,
但和指针结合起来,能又很多妙用的地方,接下来我就介绍一下c语言中数组的使用
一、数组的声明并初始化
记住一点,数组是以0为下标,然后依次往后计数,比如你设定的数组的长度是3,你要访问数组中最后一个元素,它的下标是2,如果你把下标记成3的话,数组就会溢出,报错
格式:数据类型 数组名[];
int a[];//这样一个数组就声明完成了
光声明了还得初始化,初始化也有三种方法
- 数据类型 数组名[长度n] = {元素1,元素2,元素3…};
int a[3] ={1,2,3};
- 数据类型 数组名[] = {元素1,元素2,元素3…}
- 数据类型 数组名[长度n];
数组名[0] = 元素1;
数组名[1] = 元素2;
数组名[2] = 元素3;
示例
int a[3]={1,2,3};
int b[]={4,5,6};
int c[3];
c[0] = 2;
c[1] = 3;
c[2] = 4;
通过第三种形式的数组初始化,我们也可以通过下标访问数组
…
重点提醒:写代码的时候必须切换成英文键盘写,不然报错的地方很有可能在分号,逗号的地方,而且这些报错往往最容易被忽略
二、数组的遍历
前面谈到过,访问数组元素的方法是通过下标进行访问,也就说我们要遍历数组的元素就可以通过循环来实现
看下面的例子
#include <stdio.h>
int main()
{
int a[] = {0,1,2,3,4,5,6,7,8,9};//这个数组有是个元素,但是循环遍历到数组下标9就结束了
for(int i=0;i<10;i++)
{
printf("%d\n",a[i]);//结果是每输入一个数字,就换行
}
return 0;
}
访问数组的元素的方法还可以用表达式表达:
比如a[2*2]、a[a[0]]等等,但是注意数组的最大长度
三、数组作为参数传入函数
我们知道变量可以作为参数传入函数,同理,数组也可以,数组传入也有两种形式
- 数组中的某一个元素传入,这和变量没啥区别,这是换了一种形式
- 将这个数组作为参数传入数组,只需函数名传入即可
我们看看如何传入一个数组
#include <stdio.h>
void temp(int array[])//函数中数组大小可以不定义,也可以定义,形参类型必须和数据类型一致
{
for(int i=0;i<5;i++)
{
printf("%d\n",array[i]);
}
}
int main()
{
int a[5]={1,2,5,4,3};
temp(a);//传入数组名即可
return 0;
}
四、字符串数组
4.1 定义字符串数组
- char 数组名[数组长度] = “字符串”;
- char 数组名[数组长度] = {“字符1”,“字符2”,“字符3”,"\n"};
第一种方法可以直接加上中文,第二种则不可以
4.2 数组存储数据
示例:
#include<stdio.h>
int main()
{
char str[20];//数组的长度要声明
gets(str);//这里可以输入任意个字符,按回车之后,计算机会默认“\n” 为结尾
scanf("%s",str);//第二种输入多个字符
return 0;
}
4.3 字符数组中的字符串函数
字符串函数一般是在字符串库(string.h)中,所以要在头文件后面加上==#include<string.h>==
常用的字符串函数如下
函数格式 | 函数功能 | 实例 |
---|---|---|
strlen(s) | 求字符串s的长度,也可以和数组使用,传入数组名即可,返回一个整数 | strlen(“abc”) 3 |
strcat(a,b) | 将 字符串b放在字符串 a 中 | s1 = “abc”,s2=“def”,strcat(s1,s2) “abcdef” |
atoi(s) | 将数字字符串转换成整数 | atoi(“100”) 100 |
strcpy(a,b) | 字符串的拷贝 | strcpy(s, “abc”) s=“abc” |
python部分
python中的数据结构有列表(可以理解为数组),还有元组,以及字典(键 :值),不懂得可以看看我原来得文章
正式因为python的数据结构比较灵活,这使得Python处理数据的能力很强
java部分
看这篇就够了
java数组