A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Hanle 中级黑马   /  2016-1-8 17:53  /  760 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

6.数组元素作为函数参数有两种形式:一种把数组元素作为实参使用,另外是把数组名作为函数的形参和实参使用
数组元素作为实参就是值传递,不要求形参也是数组元素,但是用数组名作为函数参数,则形参必须是一个数组。此时不是数值传递,而是值传递。此时两个数组共享一个内存单元。
类型不匹配会造成错误,如果长度不一致,不致于导致编译出错,但是结果可能是错误的。
7.形参数组的长度可以不写。形参数组传递的是地址,长度都是8个字节。数组的长度信息会丢失。(不管什么类型的数据,数据的内存地址在内存中占用8个字节)
8.注意数组的总字节数的格式是sizeof(数组名),另外注意和数组长度进行区分,数组的总字节数/元素该数据类型所占用的字节数。数据要注意长度,不要越界!
二维数组的初始化注意可以省略第一维。第二维的数可以理解成一组几个元素。
二维数组的首地址是二维数组第一个数的地址,每一行的地址是每一行第一个数的地址。
(深入理解一下事例:求多人多门课的平均成绩)
#include
void main()
{
int i,j,score[2][3]=((1,2,3)(2,3.4)),v[2],sum=0,average,max;
max=a[0][0];
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
if(a[i][j]>max)
{
max=a[i][j];
}
sum=sum+a[i][j];
}
v[i]=sum/i;
sum=0;
}
average=(v[0]+v[1]/3;
printf("max=%d %d %d\n",a[i][j],i,j);
printf("the 平均成绩是%d",v[i]);
printf("每课平均成绩是%d\n",average);
}
9.二维数组元素作为函数参数,是一个变量。数组名作为函数的参数print_arr(score)score是一个常量,保存的是数组的首地址。
形参数组可以取实参数组的一部分,其余部分不起作用。
打印地址的格式printf(“%p”,a)
further readings
               

2 个回复

倒序浏览
总结的不错哦。。。。。。
回复 使用道具 举报
二维数组还是不太好理解,看来我要加油了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马