数组
数组是用线性储存的方式 来储存相同类型的值 一个数组只有一个名字 并且可以用一个整数索引来访问
int arry【20】;
arry[0] =12;
声明 arry 数组 含有20个元素
赋值 可以直接进行赋值 即arry【0】= 12;
访问 第一个元素是 arry【0】 数组中的索引访问 从0开始
第二个元素是 arry【1】
第n个元素是 arry【n - 1】
索引不能超过数组元素个数
所有数组由连续的内存位置组成 最低地址对应第一个元素
声明数组
type arrayname [arraysize ];
arraysize 必须大于0的常量 这是一维数组
初始化数组
1 同时初始化 int balance[5] = {1,2,,4,5,6};
大括号内的值的数目不能大于中括号内的指定的数目
中括号内的数目可以不写 这样会大小按照初始化元素个数
2 可以一个一个赋值
balance[3] = 50;
指定某个元素 多起进行赋值
c传递数组给函数
将 数组作为参数 传递给函数 有三种声明函数的形式参数
方式一
形参是个指针
例 void myfunction(int *param)
{ ......
}
方式二
形式参数是以定义大小的数组
例 void myfunction(int param【10】)
{ ......
}
方式三
形参是未定义大小的数组
例 void myfunction(int param【】)
{ ......
}
例
double getaverage(int arr[],int value)
{int i;
double avg;
double sum;]
for (i = 0; i <size; ++i)
{ sum +=arr[i];
}
avg = sum /size;
return avg;
}
从函数返回数组
c不允许将整个数组返回 作为参数 但是c可以用指向数组的指针来间接 将数组输出
想要返回数组 需要声明一个返回指针的函数
int * myFuction()
{
...
} //c不支持在函数外返回局部变量的地址 除非定义局部变量为static变量
数组的 标识符 array 表示数组首个元素的地址
指向数组的指针
数组名是指向数组中第一个元素的常量指针
例 int array[11];
array 是指向 &array[0] 的指针
用数组名作为指针 是合法的 所以 *(array +2)与array[2] 所表达的意思相同
可以用*(array+i)类表示数组中的元素