您的位置:首页 > 编程语言 > C语言/C++

C语言基础(三)- 数组

2016-12-23 10:19 253 查看
数组的特点:

连续的存储空间

所有变量的数据类型必须相同

所有数据占用的字节大小都相等

为什么需要数组:

为了解决大量同类型数据的存数和使用问题

用数组可以模拟线性的现实世界、//如向量、矩阵、张量等

大部分语言提供了数组这种数据存储结构

数组的缺点:

数组的长度是一定的,无法改变

查找数据不方便

我们通常用一种以数组为内核的工具代替原始的数组来用

/**
* 数组基本定义
*/
int a[5] = {1, 2, 3, 4, 5}; //完全初始化
int a[5] = {1, 2, 3};//不完全初始化,未被初始化的元素自动为零
int a[5]; //所有元素值为垃圾直
int a[5] = {0} //清零,每个元素都为零

int a[5] = {1, 2, 3, 4, 5};
int b[5];
//如果要把a数组中的值全部复制给b数组
//错误的写法:
b = a;//error!数组的名字代表数组第一个元素的地址
//正确的写法:
for(i=0; i<=4, i++)
b[i] = a[i];

//键盘输入数组元素的数值:
scanf(“%d”,a[0]);//键盘输入a[0]

/**
* 二维数组
*/
//初始化
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};
//输出二维数组内容:用for—for结构,用格式控制符可以对输出格式控制

//多维数组
//是否存在多维数组(答:不存在,因为内存是线性一维的)
//n维数组可以当做每个元素是n-1维数组的一维数组

/**
* 数组遍历
*/

# include <stdio.h>

int main() {
//a是数组的名字,5表示数组的个数,并且这5个元素分别为a[0],a[1],a[2],a[3],a[4]
int a[] = {1,2,3,4,5};

for (int i=0; i<sizeof(a)/sizeof(a[0]); i++) { //数组占内存总空间,除以单个元素占内存空间大小
printf("a[%d] = %d\n", i, a[i]);
}

return 0;
}

/**
* 臭名昭著的冒泡排序
*/

# include <stdio.h>

int main() {
int a[8] = {2, 1, 3, 7, 5, 6, 4, 8};
int length = sizeof(a)/sizeof(a[0]);

//core
int t;
for(int i=0; i<length-1; i++) {
for(int j=0; j<length-1-i; j++) {
if(a[j] < a[j+1]) { //从大到小

t= a[j];

a[j]= a[j+1];

a[j+1]= t;
}
}
}
//以上为核心算法

for(int i=0; i<=7; i++) {
printf("a[%d] = %d\n", i, a[i]);

}

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言