C++程序设计(关于函数中数组传递的一点心得)
题目:
10个学生考完期末考试评卷完成后,老师需要划出及格线,要求如下:
(1) 及格线是10的倍数;
(2) 保证至少有60%的学生及格;
#include "stdafx.h"
#include<iostream>
using namespace std;
void func1(int a[])
{
int t = 0;
for (int i = 0; i < 10; i++)
{
for (int j = i + 1; j < 10; j++)
{
if (a[i]>a[j])
{
t = a[j];
a[j] = a[i];
a[i] = t;
}
}
}
}
int _tmain(int argc, _TCHAR* argv[])
{
int a[10] = { 0 };
for (int m = 0; m < 10; m++)
{
cin >> a[m];
}
func1(a); //这里注意数组在函数中传递的方法,这里传递的数组名a其实就代表数组的首地址,传递到func1()函数中,然后在func1()函数中就可以通过下标的方式a[i]来访问数组中的元素
for (int v = 0; v < 10; v++)
cout << a[v]<<endl;
if (a[0] >= 60)
cout << "及格线为60!" << endl;
else
cout << "及格线为" << (a[4]/10) * 10 << "!" << endl;
return 0;
}
主要想讲的是函数中数组的传递问题,其实函数中数组的传递都是通过指针来实现的:
数组在C++中是以指针的形式进行传递的。
我们可以把形参写成指针形式,也可以写成数组形式,但本质上传递的都是指针。引用《C++ Primer》上的一个例子:
//尽管形式不同,但这三个print函数是等价的
//每个函数都有一个const int*类型的形参
void print(const int*);
void print(const int[]); //可以看出来,函数的意图是作用于一个数组
void print(const int[10]); //这里的维度表示我们期望数组含有多少元素,实际不一定
以上三种形式的声明是等价的,当调用print函数时,编译器只检查传入的参数是否是(或能转换成)const int*:
int i = 0, j[2] = {0, 1};
print(&i); //正确:&i的类型是int*
print(j); //正确:j转换成int*并指向j[0],j其实就是数组的首地址,传递给int*型指针
C++程序设计(关于函数中数组传递的一点心得)的更多相关文章
- 1104解决ecos挂件中数组传递的相关问题。
1.挂件综述: 挂件组成:_config.html 后台配置,即点添加时的弹出框. default.html 前台显示,即在前台显示出来的页面. widget.php 设置挂件的基本信息.. ...
- js 中数组传递到后台controller 批量删除
/*批量删除*/function datadel(url) { var ids=[]; $("input[type='checkbox']:checked").each(funct ...
- spring mvc中使用freemark的一点心得
参考文档: FreeMarker标签与使用 连接http://blog.csdn.net/nengyu/article/details/6829244 freemarker学习笔记--指令参考: ht ...
- QSQL导出mapfile和mapfile中PostGIS连接的一点心得
昨天弄QSQL导出mapfile,一直遇到下图的错误 原因是QGIS在渲染图层时候使用了新的符号,在图层上右键-属性,如下图将符号修改就OK了 然后我尝试使用QGIS连接本机PostGIS数据,结果老 ...
- python函数中参数是如何传递的?
python中一切皆对象,函数中参数传递的是对象的引用. 1在函数中改变变量指向的对象,即指向不同对象. 当在函数中修改传递进来的变量指向另一个对象时,实参的对象不会改变. >>> ...
- 解决dva dispatch yield生成器函数中异常中断,无法继续调用的问题
在生成器函数中,哪怕是一点报错.都会导致程序无法再次执行.这是yield的特性导致的.最简单的解决方案,就是将所有报错回避,并且做好交互. 0.dva全局管理出错状态 https://dvajs.co ...
- C语言中数组名作为参数进行函数传递
用数组名作函数参数与用数组元素作实参有几点不同. 1) 用数组元素作实参时,只要数组类型和函数的形参变量的类型一致,那么作为下标变量的数组元素的类型也和函数形参变量的类型是一致的.因此,并不要求函数的 ...
- C语言中的函数、数组与指针
1.函数:当程序很小的时候,我们可以使用一个main函数就能搞定,但当程序变大的时候,就超出了人的大脑承受范围,逻辑不清了,这时候就需要把一个大程序分成许多小的模块来组织,于是就出现了函数概念: 函 ...
- js函数中参数的传递
数据类型 在 javascript 中数据类型可以分为两类: 基本类型值 primitive type,比如Undefined,Null,Boolean,Number,String. 引用类型值,也就 ...
随机推荐
- JSP 甜点
JSP cookies Cookies是存储在客户机的文本文件,它们保存了大量轨迹信息.在servlet技术基础上,JSP显然能够提供对HTTP cookies的支持. 通常有三个步骤来识别回头客: ...
- Spring中的IOC\DI\AOP等概念的简单学习
IoC(Inversion of Control,控制反转).这是spring的核心,贯穿始终, 所谓IoC,对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系.Spr ...
- PKU1008
题名:玛雅历 题意:历法转换 . 代码: // 1008.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iost ...
- SELECT控件操作的JS代码示例
SELECT控件操作的JS代码示例 1 检测是否有选中 if(objSelect.selectedIndex > -1) { //说明选中 } else { //说明没有选中 } 2.动态创建s ...
- wamp出现You don’t have permission to access/on this server提示的解决方法
本地搭建wamp 输入http://127.0.0.1访问正常,当输入http://localhost/ apache出现You don't have permission to access/on ...
- Win10/UWP新特性—Drag&Drop 拖出元素到其他App
在以前的文章中,写过微软新特性Drag&Drop,当时可能由于处于Win10预览版,使用的VS也是预览版,只实现了从桌面拖拽文件到UWP App中,没能实现从UWP拖拽元素到Desktop A ...
- android 数据下载 工具类
传入图片地址,获得服务器返回的流. 把流转化为byte[]数组
- Day21_IO第三天
1.IO体系总图 2.字符流体系图 记忆路线:输入输出流前面加File和Buffered,这就记住6个了,还剩两个转换流名字比较特殊,需要着重记一下(转换流:字节和字符的组合,所以起名字叫InputS ...
- 安装在CloudStack时CentOS6.4中安装MySQL通过mysql_secure_installation方式修改密码
在安装CloudStack时,通过mysql_secure_installation方式修改密码 01 [root@test ~]# /usr/bin/mysql_secure_installatio ...
- C#中web页面之间传递数组参数
一直以来用到的都是在url地址中传递string类型,那么如果是数组类型的该怎么传递呢? ]; arryStr[] = "a"; arryStr[] = "b" ...