首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

类中的Void Print()函数输出的是二维数组的内存地址,而不是打印值

Void Print()函数输出的是二维数组的内存地址,而不是打印值。

在C++中,Void Print()函数的返回类型为void,表示该函数不返回任何值。因此,该函数不会直接打印二维数组的值,而是输出二维数组的内存地址。

二维数组是由多个一维数组组成的数据结构,可以通过指针来访问和操作。当我们将一个二维数组传递给Void Print()函数时,实际上传递的是该二维数组的指针,即指向二维数组首元素的指针。

在函数内部,我们可以通过指针来访问二维数组的元素。如果我们直接输出指针的值,即输出二维数组的内存地址,而不是打印具体的元素值。

这种输出内存地址而不是打印值的方式可能是为了在调试过程中方便查看二维数组的内存布局和地址分配情况。但是需要注意的是,输出内存地址并不能直接得到二维数组的具体值,如果需要打印二维数组的值,可以在函数内部通过循环遍历的方式逐个打印元素的值。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云云服务器(CVM):提供弹性计算能力,满足各类业务需求。产品介绍链接
  • 腾讯云云数据库MySQL版:提供高性能、可扩展的MySQL数据库服务。产品介绍链接
  • 腾讯云人工智能平台(AI Lab):提供丰富的人工智能算法和模型,支持开发者构建智能应用。产品介绍链接
  • 腾讯云物联网平台(IoT Hub):提供全面的物联网解决方案,帮助连接和管理物联网设备。产品介绍链接
  • 腾讯云移动应用开发平台(MPS):提供移动应用开发所需的各类服务和工具。产品介绍链接
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【C 语言】数组 ( 验证二维数组内存线性 | 打印二维数组 | 以一维数组方式打印二维数组 | 打印二维数组和地址 )

文章目录 一、验证二维数组内存线性 1、打印二维数组 2、以一维数组方式打印二维数组 3、打印二维数组和地址 二、完整代码示例 一、验证二维数组内存线性 ---- 验证二维数组内存线性...: 验证方法如下 ; ① 给二维数组赋值 , 然后 打印二维数组 ; ② 使用 一维数组 方式打印二维数组 ; ③ 打印二维数组 地址 ; 1、打印二维数组 打印二维数组..., 按照顺序打印 , 这个打印顺序正好数组排列顺序 ; /** * @brief print_array 打印二维数组 * @param array */ void print_array...定义一个函数 , 函数接收一个 int* 形参指针 , 使用该指针访问二维数组元素个数 , 也可以成功访问 ; /** * @brief print_array2 使用一维数组方式打印二维数组...: 3 4 : 4 5 : 5 3、打印二维数组和地址 打印二维数组元素和地址 , 其地址连续 ; =/** * @brief print_array 打印二维数组和地址 * @param

2.5K20

是否还在疑惑Vue.js组件data为什么函数类型不是对象类型

Vue() //此时vm1应该是这样 vm1 = { //这里data,先获取了函数Vuedata(data函数),然后得到了data返回 this.data = {...Vue() //此时vm2这样 vm2 = { //这里data,先获取了函数Vuedata(data函数),然后得到了data返回 data: { name: '李四...这是因为这两个实例对象在创建时,先获得了一个函数,将该函数返回作为了自己属性data,并且这两个实例对象data在栈对应地址也不一样,所以他们不会互相影响。...= { //这里data获取了函数Vuedata属性 data: { name: '李四', age: '55' } } //将数据渲染到页面上 //此处name会调用实例对象...因为我们刚开始定义了构造函数Vue时,给他内部data设置了一个,该为对象类型,对象类型在js称为引用数据类型,在栈存储着一个指向内存该对象地址。

3.4K30
  • 框架篇-Vue面试题1-为什么 vue 组件 data 函数不是对象

    在vue组件data属性函数,如下所示 export default { data() { // data一个函数,data: function() {}简写 return...// data一个对象 name: 'itclanCoder', }, }; 当一个组件被定义,data必须声明为返回一个初始数据对象函数,因为组件可能被用来创建多个实例 也就是说,在很多页面...,定义组件可以复用在多个页面 如果data一个纯碎对象,则所有的实例将共享引用同一份data数据对象,无论在哪个组件实例修改data,都会影响到所有的组件实例 如果data函数,每次创建一个新实例后...,实例化出来对象(p1,p2)都指向同一份实体 原型下属性相当于是公有的 修改一个实例对象下属性,也会造成另一个实例属性跟着改变,这样在组件复用时候,肯定是不行,那么改成函数就可以了,如下代码所示...'itclanCoder', }; }; var p1 = new Person(); var p2 = new Person(); p1.data.name = '随笔川迹'; // 如果函数形式去定义属性

    1.9K20

    C语言灵魂——指针

    *p0); 输出结果: 我们发现所对应内存地址变了,因为程序在每次运行时候,都会重新为变量分配内存地址。...这里我们不是拷贝变量仅仅拷贝了一个变量地址,所以这里传(址)引用,这个很有意义,因为数组可以很大, 每次拷贝整个数组没有意义,他会消耗大量内存,一次对于数组来说不使用传引用,而是传(址)...当二维数组数组B被当成指针时候,他里面存B [0] [0]地址,再对他进行解引用得到对应,1。...(**(同上)**因为直接使用数组名会返回该数组首元素指针,二维数组第一个一维数组首元素地址,然后对这个首元素进行解引用操作,得到第一个元素。)...不同点: B返回一个指向一个一维数组指针,*B返回一个指向整型指针,当我们只是打印地址时候,一维数组B[0]和B[0]首元素起始地址一样,所以打印地址相同,指针类型会在你尝试解引用时或者尝试做指针算术时候起作用

    93510

    vector入门&迭代器失效问题详解

    例如,在vector::const_iterator这个名称,如果T一个模板参数,编译器需要知道const_iterator一个类型不是一个静态成员变量。...外定义成员函数成员函数可以在外定义,需要重新声明模板参数。 内定义函数模板 在C++模板允许我们定义一个通用,而这个可以操作任意类型数据。...(), myVec.end()); anotherVector.print(); // 输出:1 2 3 4 5 使用注意事项 注意调用优先级匹配机制: // 模板成员函数,还可以继续函数模版...一个二维数组可以被看作一个数组数组。...例如,一个 3x3 二维数组可以表示为: 1 2 3 4 5 6 7 8 9 使用 std::vector 构造动态二维数组 std::vector C++标准模板库(STL)一个动态数组模板

    15610

    java二维对象数组_java 二维数组和对象数组

    1.二维数组二维数组就是存储一维数组(内存地址/引用)数组 2.二维数组初始化 1) int intA[][]={ {1,2},{2,3},{3,4,5}}; 2) int [][] intB...4 int [] intA[] ={ {1,2},{2,3,4},{3,4,5,6}};5 System.out.println(intA);//[[I@5e265ba4 两个[[表示二维 I表示数组...int型 @5e265ba4内存地址6 7 //声明一一个二维数组,用于存储3个一维数组,每一个一维数据存多少个数组,不知道 ,null 8 int [][]intB=new int[3][];9 intB...姓名 private int age;//年龄 private String gender;//性别//重写toString以打印想要输出 否则只会打印对象内存地址 @OverridepublicString...[0]; System arraycopy(…)方法:快速,数组大时用次方法。

    2.9K20

    第四天 数组【悟空教程】

    举例: int[] arr = new int[3]; 解释:定义了一个int类型数组,这个数组可以存放3个int类型 1.4 访问数组元素 直接打印数组名,打印数组堆内存地址 数组每个元素都是有编号...直接打印数组获取了数组内存地址(内存图详细了解) */ public class Demo02Array{ public static void main(String[] args){ //...//String[] arr2 = new String[10]; } } 直接打印数组获取了数组内存地址(内存图详细了解) ?...这个引用变量会指向这个数组内存地址 则引用变量这个数组实例地址,引用变量通过地址可以表示这个数组对象 ?...names[0] = “Lucy”; names[1] = ”Lily”; ... c) 随机点名 通过随机数Random产生一个从0到数组长度随机索引。该索引对应便是所求随机姓名。

    80390

    指针详解(二级指针、指针数组数组指针、字符指针、二维数组传参、函数指针变量)(二)

    二维数组可以被看作数组数组指针数组数组指针。在该段代码定义了三个一维数组,然后创建了一个指针数组,该数组指向这三个一维数组开始地址。...然后你通过两个嵌套循环遍历这个“二维数组打印其内容。 此模拟二维数组与真正二维数组区别: 1、内存布局:真正二维数组在内存连续,而使用指针数组模拟二维数组不是。...这样,函数就可以直接修改原始数组不仅仅是修改副本。 2、动态内存分配:你可以使用指针来动态地分配内存空间,这在处理可变长度数据或者需要临时存储数据时非常有用。...0; } 对于 "abcdef"[3] 1、你可以把字符串想象为一个数组,但是这个数组不能修改 2、当常量字符串出现在表达式,他默认第一个字符地址,[3]让他指向第四个字符并访问...(arr,3,5);//打印arr数组内容 return 0; } 二维数组传参 void Print(int (*arr)[5], int r, int c) { int i = 0; for

    33610

    java数组定义与使用

    如果数组存储元素类型为基类型,默认为基类型对应默认,比如: 如果数组存储元素类型为引用类型(类型于c语言指针),默认为null  。...Arraysequals方法针对于数组去比较。...,这里直接看文案吧   6.二维数组 二维数组内存图  此时创建3个一维数组,这三个一维数组不是连续分布,三个一维数组分别有三个内存地址,此时二维数组存放就是这3个内存地址。...此时如果输出arr[0]就会出现第一个一维数组地址输出arr即输出二维数组地址。 所以说二维数组个特殊一维数组。 通过这java二维数组内存图也就能很好解释之后二维数组代码了。...[]可以理解为c语言*,所以可以理解arr类型为int**,根据内存图不难发现arr二维数组地址,二维数组存放存放整形一维数组地址,所以可以用int**表示.从而在javaarr类型

    13010

    九、JavaSE进阶之【数组】。

    Java数组一种引用类型,存储在堆,父为Object,一旦被创建长度不可变,元素类型必须统一。...数组可以存储基本数据类型和引用数据类型数据 数组如果存Java对象的话,实际存储对象引用(内存地址)。 数组分类:一维、二维、多维……。...数组在内存方面存储时,数组元素内存地址连续 所有数组都是以第一个元素内存地址作为整个数组内存地址 下标从0开始,最后一个元素下标为length-1. 2.1 数组优缺点 优点:检查某个下表上元素时效率高...[i]); } } } 第三章:二维数组 1.1基本特性 二维数组特殊一维数组二维数组每个元素为一维数组。...//遍历输出二维数组元素 for (int i=0;i<arr1.length;i++){ for(int j=0;j<arr1[i].length;j++)

    19030

    C++实现简单矩阵工具包

    Matrix Exp(Matrix &mat) 分别求一个矩阵对象所有元素对数并以此创建一个矩阵 void setByArray(TT array) 模板函数,使用二维数组 array 设置矩阵...void input() 从键盘输入矩阵 void shape() 查看矩阵形状(输出矩阵行和列) void shape(string matrixName) 查看矩阵形状(输出矩阵行和列),可自定义输出标识...void print() 打印矩阵(输出矩阵中所有元素print(string matrixName) 打印矩阵(输出矩阵中所有元素),可自定义输出标识 全局函数原型 函数使用说明 Matrix...to_matrix 将一个二维数组转化为一个二维矩阵 Matrix res = A * B; //计算矩阵 A 和 B 乘积并用矩阵对象 res 接收结果 A.print...(); //打印矩阵 A cout << endl; B.print("B"); //打印矩阵 B ,设置了输出标识 cout << endl; res.shape

    1.3K20

    python初始化二维数组两种方式及区别

    背景这样:初始化一个a*b二维数组二维数组第一种写法:我最开始写法这样:arr = [[0]*3] * 3在尝试给其中某个元素赋值时候,发现同一列其他元素也会变成一样,大概就像这样:...尝试定位,猜测这个二维数组每个子数组引用了同一个对象。...打印id看下:print(id(arr[0]))print(id(arr[1]))print(id(arr[2]))""" 输出:430345158443034515844303451584"""果然,...0], [0, 3, 0], [0, 0, 0]]437801004843780099844378009856"""可以看见,尝试修改[1][1],[0][1], [2][1]并没有被改变,且每个子数组内存地址不一样两种写法对象是否相等...: TrueFalse修改[1][1]后是否一致: False"""可以看见,在未修改之前,两个数组比较相等;尝试修改[1][1]后,两个数组再次比较变得不再相等。

    62720

    【C语言】深入解开指针(四)

    ⾸字符地址放到了pa。 这个内存布局,"hello,world"一个字符串常量,它存储在内存pa一个指向这个字符串常量指针,它字符串常量地址。...初始化了两个不同数组。虽然内容相同,但它们占用内存地址不同,所以str1 == str2 判断为不相等,打印"str1 and str2 are not same"。...所以二维数组传参本质,就是自动退化为一维数组指针。 数组指针变量,它也可以指向二维数组首行地址,从而实现对二维数组操作。...例如: int (*ptr)[3] = a; // ptr指向a二维数组首行 所以二维数组传参本质退化为一维数组指针,数组指针变量也可以指向二维数组,两者联系在一起,都可以看作一维数组指针来操作二维数组...printf("&test: %p\n", &print); return 0; } 输出: 确实打印出来了地址,所以函数有地址函数名就是函数地址,当然也可以通过 &函数⽅式获得函数地址

    12510

    程序员C语言快速上手——高级篇(十)

    高级篇 内存管理 内存四区 内存分配 动态内存管理 指针高级 二维数组 二级指针 函数指针 函数指针声明 函数指针赋值与使用 函数指针传递 void*指针 高级篇 内存管理 C语言程序加载到内存...可以看到,该函数之所以如此复杂,其目的就是为了保证申请空间都是一片连续内存空间,不是碎片化内存。...再来看元素内存地址打印结果 22fe10 22fe10 22fe14 22fe18 22fe1c 可以发现二维数组很像一个二维表格,有行有列,但是从元素内存地址可以看出,在内存仍然连续一片。...既然存放在内存,那么就会有地址。我们知道数组变量实际上也是一个指针,指向数组起始地址,结构体指针也是指向第一个成员变量起始地址,函数指针亦是指向函数起始地址。...\n",p(a,b)); } 函数指针实用小结 利用函数指针可以实现函数式编程 将函数指针存入数组,可以像Java、Python这样,实现函数回调通知机制 将结构体与函数指针结合,可以模拟面向对象编程

    1.4K30

    「JAVA」数组、多维数组,动态、静态初始化,数组JVM内存模型分析

    数组数据称为数组元素,我们使用索引来标识数组元素在数组存储位置,索引从0开始,步长1,其后索引依次递增: 其中,数据类型包括以下两种: 基本数据:byte,short,int,long,...[] 数组名 = {初始1, 初始2, 初始3,.......}; int[] nums = {13, 14, 520}; Java创建数组时,在JVM建立对应内存模型,在栈中保存数组变量及其内存地址...,数组内容则保存在堆,详情如下所示: 数组动态初始化: 由我们(程序员们)来设置数组长度),数组中元素初始由JVM赋予;语法如下: // 数组静态初始化语法: 元素数据类型[] 数组名...二维数组数组每一个元素一个一维数组。 三维数组数组每一个元素一个二维数组。 依次类推。...在Java可以使用多维数组打印杨辉三角,代码如下: public static void main(String []args) { // 杨辉三角行数

    2.4K51

    使用嵌套循环打印图形

    循环嵌套 循环里面可以嵌套循环,今天我们就用双层for循环打印图形和做出杨辉三角。打印图形时,把图形看做行,列。外层循环来控制行,内层控制列。如果有星星还有空格类型。...仔细观察杨辉三角,你会发现,杨辉三角每一行第一个数字和最后一个数字都是1.中间头上数和头上前一个数相加和。这样我们就可以结合打印图形和杨辉三角规律打印出杨辉三角。...把杨辉三角数放在二维数组,只需要对二维数组进行处理即可。二维数组可以看做一维数组里面放一个一维数组。...; //分配内存并赋值 for(int i=0;i<row;i++){ //设置内存大小,二维数组一维数组分配内存 arr[i]=new int[i+1]; for(int...跟一维数组动态分配内存,第一个一维数组存放第二一位数组内存地址。这样就可以输出杨辉三角。

    1.8K40
    领券