指针与数组 单从字面上来看似乎很难分清它们是什么,我们先来看看指针数组和数组指针的定义。 指针数组:数组类型 *数组名[数组长度]; 例:int *parr[5]; 数组指针:类型名 (*指针名)[数组长度]; 例:int (*parr)[5]; 现在我们再来通过上面的定义来分析一下指针数组和数组指针。 int *parr[5];因为优先级的关系,parr先与[]结合,说明parr是一个数组,然后再与*结合说明数组parr的元素是指向整型数据的指针。元素分别是parr[0],parr[1]...parr[4],相当于定义了5个整形指针变量。所以parr就是数组元素是指针的数组,本质为数组。
2022-12-15 14:23:44 15KB 指针与数组
1
本文较为详细的分析了关于理解C++指针数组,数组指针,数组名,二维数组的一些技巧。是比较重要的概念,相信对于大家的C++程序设计有一定的帮助作用。 一、关于数组名 假设有数组: int a[3] = {1, 2, 3} 1.数组名代表数组第一个元素的地址,注意,不是数组地址(虽然值相等),是数组第一个元素地址,a 等同于 &a[0]; a+1是第二个元素的地址。比第一个元素地址a(或者&a[0])超出了一个整型指针的大小,在这里是4个字节(byte) cout << a << endl;//会输出数组第一个元素地址。 2.取址符号&. &a是数组的地址,注意是数组的地址,表示数组这个
2022-02-08 16:49:28 51KB c++ 二维 技巧
1
第四章 指针和数组 几乎每次讲课讲到指针和数组时,我总会反复不停的问学生:到底什么是指针?什么 是数组?他们之间到底是什么样的关系。从几乎没人能回答明白到几乎都能回答明白,需 要经历一段“惨绝人寰”的痛。指针是 C/C++的精华,如果未能很好地掌握指针,那 C/C++ 也基本等于没学。可惜,对于刚毕业的计算机系的学生,几乎没有人真正完全掌握了指针 和数组、以及内存管理,甚至有的学生告诉我说:他们老师认为指针与数组太难,工作又 少用,所以没有讲解。对于这样的学校与老师,我是彻底的无语。我没有资格去谴责或是 鄙视谁,只是窃以为,这个老师肯怕自己都未掌握指针。大学里很多老师并未真正写过多 少代码,不掌握指针的老师肯定存在,这样的老师教出来的学生如何能找到工作?而目前 市面上的书对指针和数组的区别也是几乎避而不谈,这就更加加深了学生掌握的难度。我 平时上课总是非常细致而又小心的向学生讲解这些知识,生怕一不小心就讲错或是误导了 学生。还好,至少到目前为止,我教过的学生几乎都能掌握指针和数组及内存管理的要点, 当然要到能运用自如的程度还远远不够,这需要大量的写代码才能达到。另外需要说明的 是,讲课时为了让学生深刻的掌握这些知识,我举了很多各式各样的例子来帮助学生理解。 所以,我也希望读者朋友能好好体味这些例子。 三个问题: A),什么是指针? B),什么是数组? C),数组和指针之间有什么样的关系? 4.1,指针 4.1.1,指针的内存布局 先看下面的例子: int *p; 大家都知道这里定义了一个指针 p。但是 p 到底是什么东西呢?还记得第一章里说过, “任何一种数据类型我们都可以把它当一个模子”吗?p,毫无疑问,是某个模子咔出来的。 我们也讨论过,任何模子都必须有其特定的大小,这样才能用来“咔咔咔”。那咔出 p 的这 个模子到底是什么样子呢?它占多大的空间呢?现在用 sizeof 测试一下(32 位系统):sizeof (p)的值为 4。嗯,这说明咔出 p 的这个模子大小为 4 个 byte。显然,这个模子不是“int”, 虽然它大小也为 4。既然不是“int”那就一定是“int *”了。好,那现在我们可以这么理解 这个定义: 一个“int *”类型的模子在内存上咔出了 4 个字节的空间,然后把这个 4 个字节大小的
2021-12-14 11:29:34 1012KB c语言
1
彻底理解指针,指针数组和数组指针,指针函数和函数指针.doc
2021-12-12 13:44:16 86KB 指针 指针数组 数组指针
1
c语言利用指针求数组的最大值与最小值,下载资源,数组可扩展。
2021-12-06 16:15:57 836B c语言 数组 指针
1
C语言指针与数组关系研究及应用.pdf
2021-09-20 17:04:38 161KB C语言 开发技术 编程技术 参考文献
论C语言中指针和数组关系.pdf
2021-09-20 17:04:35 166KB C语言 开发技术 编程技术 参考文献
指针和数组的基本操作
2021-02-28 20:01:35 5KB 数据结构
1