数组的用法
2015-09-25 12:45
197 查看
1、为什么需要数组
为了解决保存大量同类型的数据 存储和使用;为了模拟现实世界
2、数组的分类
一维数组
怎样定义一维数组
为n个变量连续分配存储空间
所有的变量的数据类型必须相同
所有变量所占的字节大小必须相等
一维数组名不代表数组中所有的元素
一维数组名代表数组中第一个元素的地址
有关数组的操作:
初始化
完全初始化
int[5] = {1,2,3,4,5}
不完全初始化 未被初始化的元素自动为零
int[5] = {1,2,3}
不初始化,所有的元素都是垃圾值
int a[5]
清零: int a[5] = {0}
错误写法:int a[5];
a[5] = {1,2,3,4,5}
只有在定义数组的同时才整体赋值,其他情况下整体赋值都是错误的
int a[5] = {1,2,3,4,5}
int b[5]
如果把a数组中的值全部复制给b数组
错误写法:b = a;
正确写法: for(i = 0;i<5;++i)
b[i] = a[i];
赋值
排序
求最大/小值
倒置
查找
二维数组
int a[3][4]总共十二个元素 当做三行四列对待 这十二个元素的名字依次是
a[0][0] a[0][1] a[0][2] a[0][3]
a[1][0] a[1][1] a[1][2] a[1][3]
a[2][0] a[2][1] a[2][2] a[2][3]
初始化
int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12}
int a[3][4] = {
{1,2,3,4},
{5,6,7,8},
{9,10,11,12}
}
输出二维数组内容
不存在多维数组:
因为内存是线性一维的
n维数组可以当做每个元素是n-1维的一维数组
如:
int a[3][4] 该数组是含有三个元素的一维数组 只不过每个元素都可以在分成四个小元素
int a[3][4][5] 该数组是含有三个元素的一维数组 只不过每个元素都是4行5列的二维数组
为了解决保存大量同类型的数据 存储和使用;为了模拟现实世界
2、数组的分类
一维数组
怎样定义一维数组
为n个变量连续分配存储空间
所有的变量的数据类型必须相同
所有变量所占的字节大小必须相等
一维数组名不代表数组中所有的元素
一维数组名代表数组中第一个元素的地址
有关数组的操作:
初始化
完全初始化
int[5] = {1,2,3,4,5}
不完全初始化 未被初始化的元素自动为零
int[5] = {1,2,3}
不初始化,所有的元素都是垃圾值
int a[5]
清零: int a[5] = {0}
错误写法:int a[5];
a[5] = {1,2,3,4,5}
只有在定义数组的同时才整体赋值,其他情况下整体赋值都是错误的
int a[5] = {1,2,3,4,5}
int b[5]
如果把a数组中的值全部复制给b数组
错误写法:b = a;
正确写法: for(i = 0;i<5;++i)
b[i] = a[i];
赋值
排序
求最大/小值
倒置
查找
二维数组
int a[3][4]总共十二个元素 当做三行四列对待 这十二个元素的名字依次是
a[0][0] a[0][1] a[0][2] a[0][3]
a[1][0] a[1][1] a[1][2] a[1][3]
a[2][0] a[2][1] a[2][2] a[2][3]
初始化
int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12}
int a[3][4] = {
{1,2,3,4},
{5,6,7,8},
{9,10,11,12}
}
输出二维数组内容
不存在多维数组:
因为内存是线性一维的
n维数组可以当做每个元素是n-1维的一维数组
如:
int a[3][4] 该数组是含有三个元素的一维数组 只不过每个元素都可以在分成四个小元素
int a[3][4][5] 该数组是含有三个元素的一维数组 只不过每个元素都是4行5列的二维数组
//数组的使用 #include<stdio.h> void main() { int a[5] = {1,2,3,4,5}; //这五个元素分别用a[0] a[1] a[2] a[3] a[4]表示 int i; for(i = 0;i<5;++i) printf("%d\n",a[i]); } include<stdio.h> void main() { int a[5]; }
//把一个数组元素全部倒过来 #include<stdio.h> void main() { int a[8] = {1,2,3,4,5,6,7,8}; int i = 0; int j = 7; int t; while(i<j) { t = a[i]; a[i] = a[j]; a[j] = t; i++; --j; } for(i =0;i < 8;++i ) printf("%d\n",a[i]); }
//二维数组的操作 #include<stdio.h> void 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("%-5d ",a[i][j]); //-5表示左对齐五个符号 printf("\n"); } }
相关文章推荐
- 【perl】perl教程学习笔记
- CodeForces 1A Theatre Square(math)——Codeforces Beta Round #1
- ADT离线安装教程
- [Android Studio 权威教程]断点调试和高级调试
- HDU 5003 Osu!
- Android开发环境搭建教程
- Mac OS X 10.10 装gdb
- php学习基础篇之html
- [BZOJ1192] [HNOI2006]鬼谷子的钱袋
- 【单机版,以两个文件为例】K-Shingle+最小Hash签名+LSH算法+LSH族....Java代码
- 验证身份证号方法
- BSD & Unix简介
- HDU 5128 The E-pang Palace (排序+暴力)2014 ICPC 广州站现场赛
- Android SQLiteDatabase的使用模板
- [LeetCode]Set Matrix Zeroes
- Redis核心解读–集群管理工具(Redis-sentinel)
- 利用git把项目源码下载到本地,然后本地做gem打包,进行gem intall的流程
- poj 2914 Minimum Cut 【无向图全局最小割 Stoer-wagner算法】
- ubuntu64位adb不能用No such file or directory
- AMD64 Instruction-Level Debugging With dbx