标签:
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