数组基础知识回顾
2018-06-17 23:16:32来源:未知 阅读 ()
数组基础知识回顾
一:二维数组初始化(一维数组初始化参照此)
(1)int a[2][4] = {1,2,3,4,5,6,7,8};即将所有元素对应值全部写出。
(2)int a[2][4] = {{1,2,3,4},{5,6,7,8}};分行将其赋值。
(3)int a[2][4] = {{1},{3}};对部分元素进行赋值。
此时a数组为 1 0 0 0
3 0 0 0
上面简单回顾一下数组在代码中如何初始化,下面介绍一下数组作为函数参数是如何被调用的。
实参:可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把这些值传送给形参。 因此应预先用赋值,输入等办法使实参获得确定值。
形参:全称为“形式参数”是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传递的参数。
二:数组作为函数参数()
(1)数组元素作为函数实参:将数组元素做函数实参时,把实参值传递给形参,是’值传递‘方式。数据传递方向是从实参传递给形参,单向传递。
#include <iostream>
using namespace std;
int max(int x, int y)
{
return (x<y ? y : x);
}
int main()
{
int a[5] = { 1, 2, 3, 4, 5 };
int m = a[0];
for (int i = 0; i<5; i++)
{
if (max(m, a[i])>m)
m = max(m, a[i]);
}
cout << m << endl;
return 0;
}
(2)数组名作为函数实参:用数组元素作实参时,向形参变量传递的是数组元素的值,而用数组名作函数实参时,向形参传递的是数组首元素的地址。
例如如下这段代码将a[10]中十个元素的平均值求出并输出在控制台中,使用了数组名作为实参。
这里将实参数组a[10]的首元素地址(&a[0])传递给形参数组。因此形参获得了实参数组首元素的地址,则形参数组与实参数组具有同一地址,并具有相同的值。
#include <iostream>
using namespace std;
//求均值函数
float average(float a[10][10])
{
float sum = 0.0;
float ave = 0.0;
for (int i = 0; i < 10; i++)
for (int j = 0; j < 10;j++)
sum += a[i][j];
ave = sum / 100.0;
return ave;
}
//主函数
int main()
{
float a[10][10] = {22.2,22.44,55.55,44.66};
//不管是一维数组还是二维数组,实参均为数组名,代表&a[0][0]
float result = average(a);
cout << result << endl;
return 0;
}
三:通过指针引用数组元素
首先,int a[10] = {0}; int *p; p = &a[0];则*p = a[0];这点大家要记住,其它指针引用数组等都是这些简单知识的推广,看看C语言书本即可。
下面着重讲一下用指针引用多维数组元素这一部分!!!
大家看一下下面两段代码的区别!!!!
int main()
{
int a[2][2] = { 1, 2, 3, 4 };
int (*p)[2];//这里申明了指针变量P指向包含2个整形元素的一维数组
p = a; //这里可以直接赋值,将p指向二维数组的0行
cout << *(*(p + 1)+1) << endl; //可输出a[i][j]
return 0;
}
与
int main()
{
int a[2][2] = { 1, 2, 3, 4 };
int *p; //这里申明的指针变量,指向数组元素
p = a[0]; //这里必须赋值才能指向二维数组第0行
cout << *(p + 3) << endl;//其值加一相当于后移一位
return 0;
}
总结:使用一维数组或二维数组做形参时,实参为数组名。
使用指针:一维数组中使用*p做行参时,实参为array
二维数组中使用*p做形参时,实参为*array
二维数组中使用(*p)[3]做形参时,实参为array;
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:微信后台技术“干货们”带来的启发
下一篇:11:潜伏者
- 纯虚函数与基类指针数组的运用 代码参考 2020-04-30
- STL之deque 2020-04-29
- C++基础 学习笔记六:复合类型之数组 2020-04-25
- 寻找两个有序数组的中位数 2020-04-09
- STL之vector 2020-04-06
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash