标签:
1.数组
基本的数据类型如int double等使用来存储数据的,只能存储一个数据.而数组顾名思义就是用来存储一组数据的.
数组的注意点:
1.数组的类型一旦确定,那么存储的数据,就必须都是此类型的数据
int array[10]; //只能存储int 类型的数据
2.数组的长度固定,长度就是存储数据的个数.在我们创建数组的时候,就指定了数组的长度,一旦指定,就无法更改.
3.严谨数组越界!
2.数组定义格式
数据类型 数组名[元素个数];
int array[3]; // 我们定义了一个int 类型的数组,该数组只能存储3个int 类型的数据.未对数组初始化不能省虑数组的长度
3.数组在内存存储
int array[3]; //我们定义了一个int 类型的存放3个数据的数组, //那么我们就再内存空间申请了连续的指定字节数的空间来存储数据(在64位编译器下,int 类型占4个字节) //系统根据索引(索引从0开始一次递增),来存储数据. //变量的数据都是以补码的二进制形式存储的,低位存储在低字节,高位存储在高字节.而我们数组名就是索引为0的元素的低字节的地址.(数组名类似与指针,类似而已,但不是指针)
4.数组的初始化
int array[2] = {1,2};//数组的完全初始化 int arrayOne[2] = {3} //数组的部分初始化,当部分初始化时,系统会默认将未初始化部分赋值为0
5.数组的遍历
int main(int argc, const char * argv[]) { int array[10] = {2,3,1,7,2,5,1,9,7,5}; int length = sizeof(array) / sizeof(array[0]);//数组的长度就是数组所占字节数/数组元素所占字节数 for (int i = 0; i < length; i++ ) { printf("%d\n",array[i]); } return 0; }
6,数组与函数
注意点:1.数组中元素作为函的参数传递时,是值传递.
2.数组名作为函数的参数传递时,是地址传递(数组名就是第0个元素的低字节的地址),当通过地址传递时,可以修改实参的值(与指针类似)
3.如果数组名作为函数参数传递时,一定要传入数组的长度.无法通过形参的数组来计算实际数组的长度.
void printfArray(int array[],int length); int main(int argc, const char * argv[]) { int arr[3] = {1, 2, 5}; int length = sizeof(arr) / sizeof(arr[0]); printfArray(arr, length); return 0; } void printfArray(int array[],int length) { for (int i = 0; i < length ; i ++) { printf("%d\n",array[i]); } }
7.数组索引的小技巧
技巧1:
// 要求从键盘输入3个0~9的数字,输出除输入的其他0-9的数字 int array[10] = {0}; //初始化数组为0 int num = -1; for (int i = 0; i < 3; i ++) { // 输入3个数字 printf("请输入第%d个数\n",i + 1); scanf("%d",&num); //以规定死0-9的数字 array[num] = 1; //以输入数字为数组索引,若输入一数字,以次数字为索引,将对应索引上得数据赋值为1 } for (int j = 0; j < 10; j ++) { if (array[j] != 1) //遍历数组,将元素值不为1的索引输出 { printf("%d\n",j); } }
技巧2:
// 要求从键盘输入3个0~9的数字,排序后输出 //0 1 2 3 4 5 索引 //0 0 2 1 0 0 元素值 int array[10] = {0}; //初始化数组为0 int num = -1; for (int i = 0; i < 3; i ++) { printf("请输入第%d个数\n",i + 1); scanf("%d",&num); array[num] += 1;//计数器思想,若输入数字,以次数字为索引,将对应索引上得数值+1; } for (int i = 0; i < 10; i ++) { for (int j = 0; j < array[i]; j ++) //重复输入数据的计数器 { printf("%d\n",i); } }
标签:
原文地址:http://www.cnblogs.com/kk657483726/p/5131463.html