1维数组
/*** 一维数组 ***/
/*
定义:
1.为n个变量连续分配存储空间
2.所有的变量数据类型必须相同
3.所有变量所占的字节大小必须相等
操作:
1.初始化
2.赋值
3.排序
4.求最大值/最小值
5.倒置
6.插入
7.删除
*/
#include<stdio.h>
int main()
{
int i;
int a[5] = {1,2,3,4,5}; //完全初始化
int b[5];
for (i=0; i<5; ++i)
{
b[i] = a[i]; //将数组a中的各个元素赋值给数组b
printf("%d\n", a[i]);
printf("%d\n", b[i]);
}
return 0;
}
/*
备注:
1. int a[5]; //不初始化,所有元素是垃圾值,a为数组名,5为长度
2. int a[5] = {1,2,3}; //不完全初始化,未被初始化的元素自动为零
3. int a[5] = {0}; //清零
4. a[5] = {1,2,3,4,5} //错误写法,只有在定义数组的同时才可以整体赋值,其他情况整体赋值都是错误的,这里的5代表的不是长度而是下标,编号是从0开始,没有到5
5. b = a; //错误写法,b和a分别代表两个数组第一个元素的地址
反思:
二维数组的相互赋值:不能直接赋值,利用for循环语句,逐一赋值
*/
2维数组
/*
时间:2018.03.10 10:33
二维数组:
1. int a[3] [4];
2. 输出数组内容
*/
#include<stdio.h>
int main()
{
int a[3][4]={
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
int i,j;
// 输出数组内容
for (i=0; i<3; ++i)
{
for (j=0; j<4; ++j)
printf("%d,", a[i][j]);
printf("\n");
}
return 0;
}
/*
心得:
二维数组不能直接输出,需要利用for循环语句,将每个元素,逐一输出
*/
多维数组
是否存在多维数组?
不存在
原因:内存是线性唯一的
n维数组可以当做每个元素是n-1维数组的一维数组