1、求大小
操作符 sizeof :
int arry[100];
//用来保存数组长度
int la=0,a,b ;
//直接用数组名作为 sizeof 的参数,得到数组的字节数。
a = sizeof(arry);
//用 数组的第 0 个元素作为 sizeof 的参数,得到 数组中单个元素字节数
b = sizeof(arry[0]);
la = a/b; // 结果为数组的元素个数
2、数组名
数组名本身是数组第一个元素的地址。它本身可以作为函数的参数,用来把一个数组传递给一个参数。
int function(char ch[],char* p){
//代码
for(int i=0;i<3;i++){
printf("%c",*(p + i)); // p + i 可以访问数组的 arry[i]
printf("%c",ch[i]); //
}
};
int main(){
char arry[20]; int ret=0;
ret = function(arry,arry); //数组名作为函数参数,自动退化成指针。
}
3、动态数组
C语言中,不允许动态数组。但在实际情况中有这种需求,所以C语言提供了一些内存管理函数。
定义:
typedef struct DYNAMICARRY{
//数组指针
//数组当前元素个数
//数组最大容量
} dynamic_arry;
动态数组在扩展内存时,用 malloc 和 calloc 函数来实现,函数的返回值是新增内存的指针。