C++数组引用
C++数组引用
一、数组引用
C++数组的引用:
引用即别名
这样比指针传地址方便多了
形参中的(&a)[10]可以就看做a数组的别名,肯定要指定数组大小,如果没有后面的数组大小,天知道是变量还是数组
普通传值和引用传值对比:
数组普通传值:a-->a[10] (或a[])
数组引用传值:a-->(&a)[10]
变量普通传值:a-->a
变量引用传值:a-->(&a)
类比一下,很好理解
二、代码实例
/*
C++数组的引用:
引用即别名
这样比传地址方便多了
形参中的(&a)[10]可以就看做a数组的别名,肯定要指定数组大小,如果没有后面的数组大小,天知道是变量还是数组
普通传值和引用传值对比:
数组普通传值:a-->a[10] (或a[])
数组引用传值:a-->(&a)[10]
变量普通传值:a-->a
变量引用传值:a-->(&a)
类比一下,很好理解 测试结果:
0 0 0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7 8 9
*/ #include <iostream>
using namespace std;
void test(int a[]);// 数组普通传值,用于打印数组a的值
void readData(int (&a)[]); //数组引用传值:将a数组赋值为0--9
void printData(int (&a)[]); //数组引用传值:用于打印数组a的值
void test(int a[]){// 数组普通传值,用于打印数组a的值
for(int i=;i<;i++)
{
printf("%d ",a[i]);
}
printf("\n");
}
void readData(int (&a)[]){//数组引用传值:将a数组赋值为0--9
for(int i=;i<;i++)
{
a[i]=i;
}
}
void printData(int (&a)[]){//数组引用传值:用于打印数组a的值
for(int i=;i<;i++)
{
printf("%d ",a[i]);
}
}
int main(){
int a[]={}; //为a数组中的每一个赋初值为0
test(a); // 数组普通传值,用于打印数组a的值
readData(a);//数组引用传值:将a数组赋值为0--9
printData(a);//数组引用传值:用于打印数组a的值 return ;
}
三、测试结果
测试结果:
0 0 0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7 8 9

C++数组引用的更多相关文章
- [转]数组引用:C++ 数组做参数 深入分析
"数组引用"以避免"数组降阶"(本文曾贴于VCKBASE\C++论坛) 受[hpho]的一段模板函数的启发,特写此文,如有雷同,实在遗憾. 数组降阶是个讨厌的事 ...
- [C++]数组指针,数组引用,函数指针
数组指针是指一个指向数组的指针,例如有一个数组指针p指向一个数组a[],则 *p是取到这个数组,也就是说 *p=a,因此 **p =a[0], 它的定义为: ]; ]=&a; (*c)表示它是 ...
- java 数组声明定义 数组内存分配 数组初始化 数组引用 数组的遍历
一,数组的定义 Java 中定义数组的语法有两种: 1. type arrayName[]; 2. type[] arrayName;type 为Java中的任意数据类型,包括基本类型和组合类型,ar ...
- 引用、数组引用与指针引用、内联函数inline、四种类型转换运算符
一.引用 (1).引用是给一个变量起别名 定义引用的一般格式:类型 &引用名 = 变量名: 例如:int a=1; int &b=a;// b是a的别名,因此a和b是同一个单元 ...
- Java8 方法引用与构造器引用,数组引用
package java_8; import org.junit.Test; import java.io.PrintStream; import java.util.Comparator; impo ...
- java 基本语法(十七)Lambda (四)构造器引用与数组引用
1.构造器引用格式:类名::new 2.构造器引用使用要求:和方法引用类似,函数式接口的抽象方法的形参列表和构造器的形参列表一致.抽象方法的返回值类型即为构造器所属的类的类型 3.构造器引用举例: / ...
- Lambda 方法引用 构造器引用 数组引用
一.方法引用 注意: 1.Lambda 体中调用方法的参数列表与返回值类型,要与函数式接口中的抽象方法的函数列表和返回值保持一致!2.若Lambda 参数列表中的第一个参数是实例方法的调用者,而第二个 ...
- C++语法 初始化列表 数组引用
只能在初始化列表initilizationlist中初始化的有: 1.const修饰的数据成员或者reference参考 2.基类的构造函数 注意,数组不能引用,亦即以下代码是不对的 void fun ...
- js 数组引用 发现的问题
最近做项目时,要对返回的数据[保存在json数组中]做一次修改,但原数据要保留一次做备用.首先想到,原数据不动,用一个临时的变量来修改,大致模型就是这样: // 原始: a=[1,2,3,4,5,.. ...
随机推荐
- 登录使用inode的校园网用到的url
无需使用inode客户端,直接访问下面的url,然后输入账号密码即可. 第一次访问这个url的时候可能会提示下载inode客户端,再访问一次即可. url1:http://172.20.1.1/por ...
- 错误:Python Urlfetch Error:'GET
1) 如果你初装了 GaAgent, 记得把在 proxy.ini 里的 id 填上:2) 刷新几次:3) 把浏览器关了,重新打开:4) 清除浏览器的缓冲区:5) 清除 cookies6) 用浏览器的 ...
- Nuget的学习总结
Nuget的学习总结 今天研究了一下nuget,发现nuget实在是太有用了,便写下了这篇博客,希望记录一下自己的学习历程,也希望技术圈的朋友看到之后,如果里面哪里写的不够好,可以给我些宝贵的意见,以 ...
- java编译 Error: Could not find or load main class java执行包main方法
在java源文件开头有包声明语句,编译的时候需要指定生成的class文件路径. 解决方法: javac -d your_path your_class.java 例如:javac -d . First ...
- python webdriver 从无到有搭建数据驱动自动化测试框架的步骤和总结
一步一步搭建数据驱动测试框架的过程和总结 跟吴老学了搭建自动化数据驱动的框架后,我在自己练习的时候,尝试从简单的程序进行一点一点的扩展和优化,到实现这个数据驱动的框架. 先说一下搭建自动化测试框架的目 ...
- Low-level Native Plugin Interface
http://docs.manew.com/Manual/index.htm https://docs.unity3d.com/Manual/NativePluginInterface.html ht ...
- Spring IOC 源码分析
Spring 最重要的概念是 IOC 和 AOP,本篇文章其实就是要带领大家来分析下 Spring 的 IOC 容器.既然大家平时都要用到 Spring,怎么可以不好好了解 Spring 呢?阅读本文 ...
- P2864 [USACO06JAN]树林The Grove
P2864 [USACO06JAN]树林The Grove 神奇的射线法+bfs 裸的bfs很难写....... 那么我们找一个最外围障碍点,向图的外边引一条虚拟射线. 蓝后bfs时经过这条射线奇数次 ...
- Android内核和Linux内核的区别
1.Android系统层面的底层是Linux,并且在中间加上了一个叫做Dalvik的Java虚拟机,从表面层看是Android运行库.每个Android应用都运行在自己的进程上,享有Dalvik虚拟机 ...
- 如何修改ls命令列出来的目录颜色
答:默认为蓝色,在黑色背景下无法看清楚,因此以以下方法修改; 1.往~/.bash_profile文件中添加以下内容: export LS_COLORS='no=00:fi=00:di=01;33:l ...