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维数组的一维数组