当前位置: 首页 > wzjs >正文

notepad做网站广州sem代运营推广公司

notepad做网站,广州sem代运营推广公司,中企动力重庆分公司怎么样,湖北省住房和城乡建设厅官网接上篇文章《【和春笋一起学C】函数——C的编程模块》,当使用数组名作为函数形参时,数组名会退化为指针,实际传递的是数组首元素的地址。 数组名在大多数情况下会退化为指针,以下两种情况除外: 当使用sizeof运算符时&a…

接上篇文章《【和春笋一起学C++】函数——C++的编程模块》,当使用数组名作为函数形参时,数组名会退化为指针,实际传递的是数组首元素的地址。

数组名在大多数情况下会退化为指针,以下两种情况除外:

  1. 当使用sizeof运算符时,如sizeof(数组名),会计算整个数组的长度;
  2. 当使用&(取地址运算符)时;

 一个简单的实例,控制台终端输入一个数组后,显示数组中各个元素的值,然后乘以一个系数后再输出各个元素的值。代码如下:

#include <iostream>
using namespace std;int fill_array(double ar[], int maxlength)
{double temp;int i;for (i = 0; i < maxlength; i++){cout << "Enter value: " << (i + 1) << ": ";cin >> temp;if (!cin){cin.clear();while (cin.get()!='\n'){continue;}cout << "bad input, input process terminated. \n";break;}ar[i] = temp;}return i;
}void show_array(const double ar[], int n)
{for (int i = 0; i < n; i++){cout << ar[i] << "  ";}cout << "\n\n" << endl;
}void revalue(double r, double ar[], int n)
{for (int i = 0; i < n; i++){ar[i] *= r;}
}int main()
{   const int maxLength = 5;double properties[maxLength];cout << "please input show number: " << endl;fill_array(properties, maxLength);show_array(properties, maxLength);double factor;cout << "please input revalue factor: " << endl;cin >> factor;revalue(factor, properties, maxLength);show_array(properties, maxLength);return 0;
}

输入5个数,程序先显示5个输入的数,然后再输入一个影响因子,将5个数乘以同一个影响因子,再输出结果。程序运行结果如下图:

程序说明:

  1. fill_array函数的功能是输入最多包含5个元素的数组的值,也可以输入3个或4个元素。
  2. show_array函数功能是显示数组元素的值。因只需在函数中显示数组元素的值,而不需要修改其值。因此,为了防止函数无意中修改数组元素的值,在声明形参数组时使用关键字const,这表明指针ar指向的是常量数据,在函数中可以使用ar[0]这样的数据,但是不能修改。这里注意,show_array函数中的形参const double ar[]并不意味着实参数组必须是常量,它只代表不能在show_array()函数中修改ar数组元素的值。
  3. revalue函数为将数组中的5个元素乘以同一个影响因子,因在函数中需要修改数组元素的值,因此在声明ar时,不能使用const。

如果形参是普通变量(int,float等),这种保护将自动实现,这是由于C++是按值传递数据,函数使用的是数据的拷贝。但是当数组名作为函数参数时,在函数中将使用数组的原始数据,这也正是fill_array()函数能够完成任务的原因。

总结:使用数组名作为函数参数时需要考虑在函数中是否需要修改数组元素的值,如果不需要修改数组元素的值,则需要将数组设置为const类型,以防止在函数中操作数组元素时无意中修改了数组元素的值。

程序延伸:上述程序首先通过数据类型和设计适当的函数来处理数据,然后将这些函数组合成一个程序,这种设计方法称为自下而上的程序设计,因为设计过程从组件到整体进行,所以这种方式适合于OOP(面向对象的编程方式),它强调的是数据表示和操纵。传统的过程性编程(C语言)倾向于自顶向下的程序设计,它首先指定模块化的设计方案,然后再研究细节。这两种方法都很有用,最终的产品都是模块化程序。


文章转载自:

http://QkvVcT44.yhwxn.cn
http://DhgfdsiY.yhwxn.cn
http://Iu4DODZm.yhwxn.cn
http://qlfGpnEi.yhwxn.cn
http://IO7Hss39.yhwxn.cn
http://gaZ3zE6f.yhwxn.cn
http://YbuEorx8.yhwxn.cn
http://Saj6ZekD.yhwxn.cn
http://npRZ6AAz.yhwxn.cn
http://ppjitTl3.yhwxn.cn
http://fIISGRYS.yhwxn.cn
http://4KrBccFU.yhwxn.cn
http://Jdx9CPKX.yhwxn.cn
http://upREtQPD.yhwxn.cn
http://JFyzd6Eo.yhwxn.cn
http://z9eihfd3.yhwxn.cn
http://Mh04ytFy.yhwxn.cn
http://ex3togEo.yhwxn.cn
http://ol7wPYmF.yhwxn.cn
http://BAuNi5dq.yhwxn.cn
http://9fw4G6qF.yhwxn.cn
http://ias9EaAs.yhwxn.cn
http://2L55RbDE.yhwxn.cn
http://7tUroyqi.yhwxn.cn
http://0SFXORSG.yhwxn.cn
http://KBGWYP3D.yhwxn.cn
http://pk3xatDq.yhwxn.cn
http://aLolfmCk.yhwxn.cn
http://N7txVzKa.yhwxn.cn
http://LLwdkzMD.yhwxn.cn
http://www.dtcms.com/wzjs/755409.html

相关文章:

  • 海南网站建设多少钱网页制作平台哪个最好
  • 泰拳图片做网站用网站建设与制作过程
  • WordPress网站主题升级网站建设系统哪个好
  • 网站建设费用:做个网站要多少钱?镇江网
  • 网站建设结课论文手机app开发工具中文版
  • 网站建设要架服务器建设网站的结束语
  • 珠海网站推广公司国外采购网站大全
  • 怎么建小说网站做网站 然后百度推广
  • 用eclipse做网站模板凡客的官网
  • 重庆市建设项目环境申报表网站wordpress下载效果
  • 长春 建网站租号网站怎么做的
  • 福州交通建设集团官方网站浙江省国有建设用地出让网站
  • 免费网站建设 百度一下设计师网名女
  • 四川网站建设有哪些大鱼直播
  • 网站建设付款银行写什么用途梧州做网站建设
  • 四川德行天下建设工程有限公司网站网站升级的内容包括哪些
  • 做网站需要什么图片石家庄建设局网站
  • 韩国外贸网站史上最全的微信小程序代码大全
  • 前端网站优化网站刷新新前台是什么意思
  • 有哪些做国际贸易的网站宣传设计网站
  • 缺乏门户网站建设网站建设与维护大作业
  • 网站建设前台和后台提高搜索引擎排名
  • 邢台做网站推广价格口碑好的广州做网站
  • 深圳珠宝品牌网站设计wordpress后台英文
  • 杭州品牌网站设计安装下载app
  • 前端网站论文中国建造师网官网个人入口
  • 网站开发五人分工网站建设开发做网站吧
  • 教你如何做好网站网站制作怎么做
  • 苏州网站建设搜q4791857001688网站店招怎么做
  • 呼和浩特制作网站西安平台搭建