阅读前提:你得知道啥是数组。

本文需要弄清楚的问题如下:

1,数组作为函数参数,传入的是值,还是地址?

2,数组作为函数参数,数组的长度能否确定?

解决如下

1,数组作为函数参数,传入的是地址。因为数组不可以被拷贝

 #include <iostream>
 using namespace std;
 void testArray(int a[])
 {
     cout<<"a作为参数的地址是"<<a<<endl;
 }
 int main()
 {
     ,,,,,};
     cout<<"a刚开始的地址是:"<<a<<endl;
     testArray(a);
     system("pause");
     ;
 }

2,数组作为函数参数,在用sizeof获取他的大小时,它已经是一个指针了。也就是说函数中没有办法知道传入进来的数组大小是多少。(数组仅在定义其的域范围内可确定大小。)

 #include <iostream>
 using namespace std;
 void testArray(char a[])
 {
     cout<<"a的大小是:"<<sizeof(a)<<endl;
 }
 int main()
 {
     ,,,,,};
     cout<<"a刚开始的大小是:"<<sizeof(a)<<endl;
     testArray(a);
     system("pause");
     ;
 }

3.确定函数中传入数组长度的方法

 #include <iostream>
 using namespace std;
 void testArray(char a[],int len)
 {
     cout<<"a的大小是:"<<len<<endl;
 }
 int main()
 {
     ,,,,,};
     cout<<"a刚开始的大小是:"<<sizeof(a)<<endl;
     testArray(a,]));
     system("pause");
     ;
 }

返回数组的函数

数组不能被拷贝,所以函数不能返回数组,不过函数可以返回数组的指针或是引用

空一行留待以后补充

声明一个返回数组指针的函数

Type (*function(parameter_list))[demension]

Type返回类型

parameter_list参数列表

demension数组的长度

(*function(parameter_list))两端的括号必须括上,没有括号返回的类型将是指针的数组

c++ 深入理解数组的更多相关文章

  1. 从PHP底层源码去深入理解数组,并用C模拟PHP关联数组(原创)

    PHP是一门入门容易,使用范围广泛的语言,以其灵活性以及web后端开发被很多人熟知,也被很多人戏称“PHP是世界上最好的语言”.本人是一名“忠实”的PHPer,相信用过PHP的程序员都会体会到PHP数 ...

  2. [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)

    文章来自:http://www.hoohack.me/2016/02/15/understanding-phps-internal-array-implementation-ch 原文:https:/ ...

  3. 放弃"指针常量"这种不严谨的中文描述!深度理解数组名、指针常量

    ques1: 数组名完全等价于指针常量吗? int array[10] = { 10,11,12,13,14,15 }; printf("sizeof(array)= %d \n" ...

  4. Java入门 第10天 ,理解数组

    数组的特点: 1.内容的类型固定,不会int String 两个类型一起,要么是int类型 要么是String类型 或者其他类型. 2.长度是固定的,例:String [ ]   myArray  = ...

  5. 【C/C++】一道试题,深入理解数组和指针

    在x86平台下分析下面的代码输出结果 int main(void) { ] = {, , , }; ); ); printf(], *ptr2); ; } &a+1 首先明确,a是一个具有4个 ...

  6. JavaScript的进阶之路(五)理解数组2

    数组方法 //定义一个测试数组 var array1 = [1,2,5,null,"a"]; //join()方法是String.split()方法的逆操作,后者是将字符串分割成若 ...

  7. JavaScript的进阶之路(五)理解数组1

    数组是值得有序结合,每个值叫做一个元素,每个元素的位置称为索引,索引从0开始. 在JavaScript中,数组是对象的特殊形式.继承自Array.prototype中的属性,有丰富的数组操作方法. 通 ...

  8. 怎样理解数组的空元素empty与undefined的区别

    数组的空元素empty表示空位, 它不是一种数据类型, 而是由于人为修改arr.length 或者写入时多写了逗号造成的. var arr = [1,2,3,4,,,5]; arr.length; a ...

  9. 深入理解C语言-深入理解数组

    数组,作为C语言中常见的复杂数据类型,了解其本质有助于深入了解C语言 数组概念 元素类型角度:数组是相同类型的变量的有序集合测试指针变量占有内存空间大小 内存角度:联系的一大片内存空间 数组初始化 数 ...

随机推荐

  1. PL/SQL Developer 导入导出操作

    一.PL/SQL Developer数据导入 Tools->Import Tables

  2. RxJava系列番外篇:一个RxJava解决复杂业务逻辑的案例

    之前写过一系列RxJava的文章,也承诺过会尽快有RxJava2的介绍.无奈实际项目中还未真正的使用RxJava2,不敢妄动笔墨.所以这次还是给大家分享一个使用RxJava1解决问题的案例,希望对大家 ...

  3. webpack打包性能优化

    1. 使用 gzip 压缩打包后的 js 文件 这个方法优化浏览器下载时的文件大小(打包后的文件大小没有改变) webpack.config.prod.js 中 var CompressionWebp ...

  4. layer ui插件显示tips时,修改字体颜色

    今天做调查问卷,又遇到一个蛋疼小问题,记录下. 调查问卷有很多选项是要求必填的,如果不填的话,需要给出友好的提示.用的如下组件:http://layer.layui.com/ 1.之前一直默认用的: ...

  5. 解析 Javascript - this

    在函数中 this 到底取何值,是在函数真正被调用执行的时候确定下来的,函数定义的时候确定不了.  因为 this 的取值是执行上下文环境的一部分,每次调用函数,都会产生一个新的执行上下文环境.当你在 ...

  6. codeforces round 425 div2

    A. Sasha and Sticks 水题,判断一下次数的奇和偶就可以的. B. Petya and Exam 赛上的时候没有写出来,orz,记录一下吧. 题意:给出一个模式串,可能会有?和*两种符 ...

  7. POJ-1122 FDNY to the Rescue!---Dijkstra+反向建图

    题目链接: https://vjudge.net/problem/POJ-1122 题目大意: 给出矩阵,矩阵中每个元素tij表示从第i个交叉路口到第j个交叉路口所需时间,若tij为-1则表示两交叉路 ...

  8. PHP+MySQL分页显示示例分析

    Web开发是今后分布式程式开发的主流,通常的web开发都要涉及到与数据库打交道,客户端从服务器端读取通常都是以分页的形式来显示,一页一页的阅读起来既方便又美观.所以说写分页程序是web开发的一个重要组 ...

  9. js实现两种实用的排序算法——冒泡、快速排序

      分类:js (4443) (0) 零:数据准备,给定数组arr=[2,5,4,1,7,3,8,6,9,0]; 一:冒牌排序 1思想:冒泡排序思想:每一次对比相邻两个数据的大小,小的排在前面,如果前 ...

  10. 初探arch -小白安装arch篇

    前段时间突然想试一试arch系统,电脑有点拖不动了,想想可以自己DIY自己需要的东西,就装个arch吧. 于是就马不停蹄的安装. 1.开始:用U盘制作启动盘.这里推荐低量级的制作软件USBwriter ...