C语言:数组和函数(算数组大小,数组传参,数组形参) |
您所在的位置:网站首页 › 数组作为函数形参 › C语言:数组和函数(算数组大小,数组传参,数组形参) |
一.数组的大小计算(用sizeof):
int a[3]; 一个整型数占用空间4个字节,3个占用空间12个字节
char b[3]; 一个char型占用空间1个字节,三个占用空间3个字节
printf("a数组的大小是:%d\n",sizeof(a));
printf("b数组的大小是:%d\n",sizeof(b));
printf("一个整数的空间是:%d\n",sizeof(a[0]));
printf("一个字符型数的空间是:%d\n",sizeof(char));
问: 两个数组有什么相同点,不同点
相同:数组的元素个数为3
不同: 1、数组的类型不同
2、数组的内存大小不同
问:如何计算数组中元素的个数。 数组的总大小/一个类型的大小
printf("a数组有%d个元素\n",sizeof(a)/sizeof(a[0])); 或者 sizeof(a)/sizeof(int)
二.数组的传参,传的是地址 :
当我们学到指针的时候,就可以将函数中的参数 int array[ ] 直接
改为 int *array
void hanShu(int array[]){ 改成指针:void hanShu(int *array)
}
int main(){
int array[1] = {3};
hanShu(array);
}
将array这个数组进行传参时,有两种方式:
1. hanShu(array);
2. hanShu(&array[0]);
总结:数组名 或者 取数组第一项 都可以作为数组的地址使用
(因为数组的第一项就是表示数组的地址)
三.数组的形参仅表示是一个地址,中括号中数组的大小是无效的 :
**void hanShu(int a[ ]) . 1.形式参数中,虽然写的一个数组的样子,中括号中数组的大小是无效的!!!!!! 2.这里不管中括号中写多少,都不能代表形参数组有多大! 3.这里的中括号的作用仅仅用来表示:该参数是一个数组,是一个(地址!)在问 windows啊哈c中,用4个字节表示地址,linux64位中用8个字节表示。** . 四:代码如下: #include #include //第一个参数是数组的首地址,第二个参数是数组的个数 void arrayPrint(int datas[],int cnt) //形式参数中,虽然写的一个数组的样子,中括号中数组的大小是无效的!!!!!! //这里不管中括号中写多少,都不能代表形参数组有多大! //这里的中括号的作用仅仅用来表示:该参数是一个数组,是一个(地址!)在问windows啊哈c中,用4个字节表示地址,linux64位中用8个字节表示。 { //printf("数组的大小是:%d\n",sizeof(datas)); //printf("一个int数据的大小是:%d\n",sizeof(int)); //printf("函数调用中:datas 数组中元素个数为 %d个\n",sizeof(datas)/sizeof(datas[0])); int i; for(i=0;i |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |