零基础学C语言 笔记七 一维数组

来源:互联网 发布:php final function 编辑:程序博客网 时间:2024/04/29 16:25

数组:
1. 数组里面存放的是多个,相同数据类型的,并且这些数据代表的含义相同
2. 数组的特点:
a) 能够存放多个数据
b) 多个数据的类型要一致
c) 数据的意义应该形同
d) 方便管理
3. 语法:存放的数据的数据类型 数组名[存放的数据个数];
4. 赋值的时候,不能超出界限
5. 初始化
a) int scores[4] = {10,20,30};数组长度是4,存放的是10,20,30,0;
b) int scores[] ={10,20,30};数组长度是3,存放的是:10,20,30;
6. 数组的遍历
a) for(int i = 0 ; i <长度;i++)
{
printf(”%d\n”,arr[i]);
}
7.数组的长度
数组的长度 = sizeof(数组名)/sizeof(数组名[0]);
7. 数组在内存中的地址
a) 数组名 = 数组地址 = 数组的第0个元素的地址 = 数组第0个元素的低字节的地址
8. 数组和函数
a) 如果一个函数的形式参数是一个数组,那么在执行函数的过程中,不会把这个形参创建一个数组,而是创建一个存放地址的变量,把我们实参的地址传递过来。
b) 这样的话,在函数的内部,通过sizeof计算数组的长度就会丢失,因为sizeof(数组名)永远是8,是存放这个数组地址空间的大小。
c) 所以当我们传递数组的地址的时候,一并的把数组的长度也传递给这个函数
9. 选择排序

第0轮 第1轮 第2轮 第3轮
0~1 1~2 2~3 3~4
0~2 1~3 2~4
0~3 1~4
0~4

for(int i = 0;i<length-1;i++){    for(int j = i+1;j<length;j++ )    {        if(arr[i] > arr[j])        {            int temp = arr[i];            arr[i] = arr[j];            arr[j] =temp;        }    }}
  1. 冒泡排序
    第0轮 第1轮 第2轮 第3轮
    0~1 0~1 0~1 0~1
    1~2 1~2 1~2
    2~3 2~3
    3~4
for(int i = 0;i < length-1;i++){    for(int j = 0; j< length -i -1;j++)    {        if(arr[j] > arr[j+1])        {            int temp = arr[j];            arr[j] = arr[j+1];            arr[j+1] = temp;        }    }}
0 0
原创粉丝点击