• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > c++将数组名作为函数参数对数组元素进行相应的运算

c++将数组名作为函数参数对数组元素进行相应的运算

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c++函数返回数组,c++数组排序函数,c++数组长度函数,c++数组函数,c++字符串数组等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

用数组名做函数参数与用数组元素作实参有几点不同:

(1)用数组元素作实参时,只要数组类型和函数的形参变量的类型一致,那么作为下标变量的数组元素的类型也和函数形参变量的类型是一致的。因此,并不要求函数的形参也是下标变量。换句话说,对数组元素的处理是按普通变量对待的。用数组名作函数参数时,则要求形参和相应的实参都必须是类型相同的数组,都必须有明确的数组说明。当形参和实参两者类型不一致时,将会发生错误。

(2)用普通变量或下标变量作函数参数时,形参变量和实参变量都是由编译系统分配的两个不同的内存单元。在函数调用时进行的值传递是把实参变量的值赋予形参变量。在用数组名做函数参数时,不是进行值的传递,即不是把实参数组的每一个元素的值都赋予形参数组的各个元素。因为实际上形参数组并不存在,编译系统不为形参数组分配内存。因为数组名就是数组的首地址。因此用数组名做函数参数时所进行的传递实际上是地址的传递,也就是把实参数组的首地址赋予形参数组名。形参数组名取得该首地址后,也就等于有了具体的地址。实际上是形参数组和实参数组为同一数组,共同使用一段内存空间。

#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>
float average(float array[10])
{   int i;
    float aver,sum=array[0];
    for(i=1; i<10; i++)
        sum=sum+array[i];
    aver=sum/10;
    return aver;
}
void main()
{   float score[10],aver;
    int i;
    printf("input 10 score:\n");
    for(i=0; i<10; i++)
        scanf("%f",&score[i]);
    printf("\n");
    aver=average(score);
    printf("average score is %5.2f\n",aver);
}
</div>

说明:

(1)用数组名作函数参数,应该在主调函数和被调函数中分别定义数组。
(2)实参数组与形参数组类型应一致,如不一致,结果将出错。
(3)实际上,指定被调函数中形参数组的大小是不起任何作用的,因为C编译器对形参数组大小不做检查,只是将形参数组的首地址传给形参数组。
(4)形参数组也可以不指定大小,定义数组时在数组名后跟一个空的中括号,为了在被调函数中处理数组元素的需要,可以另设一个参数,传递数组元素的个数。

</div>

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • c++将数组名作为函数参数对数组元素进行相应的运算

相关文章

  • 2017-05-28C++11的for循环,以及范围Range类的简单实现
  • 2017-05-28基于C语言指令的深入分析
  • 2017-05-28c++实现的常见缓存算法和LRU
  • 2017-05-28详解C 语言项目中.h文件和.c文件的关系
  • 2017-05-28Visual C++程序设计中Windows GDI贴图闪烁的解决方法
  • 2017-05-28深入解析最长公共子串
  • 2017-05-28树形结构的3中搜索方式示例分享
  • 2017-05-28指针与const限定符的使用分析
  • 2017-05-28DSP中浮点转定点运算--举例及编程中的心得
  • 2017-05-28基于malloc与free函数的实现代码及分析

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 浅谈c++中的输入输出方法
    • 详解C++中的对象指针与对象数组
    • C++ expected initializer before 'myfile'
    • C++基础入门教程(二):数据、变量、宏等
    • 搭建C语言开发环境(Windows平台)汇总
    • C语言实现堆排序的简单实例
    • GetChar缓存机制深入剖析
    • C++冒泡排序算法实例
    • 深入理解Java事务的原理与应用
    • C++多线程编程简单实例

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有