指向一维数组的指针_指针指向二维数组

指向一维数组的指针_指针指向二维数组C++基础知识:数组(十一)数组是存放类型相同的对象的容器。数组的大小确定不变。数组是一种复合类型,数组的声明形式:类型 变量名[数量]。数组中素的个数必须大于0。默认情况下,数组的素被默认初始化。和内置类型的变

C++基础知识:数组(十一)   数组是存放类型相同的对象的容器。数组的大小确定不变。数组是一种复合类型,数组的声明形式:类型 变量名[数量]。数组中素的个数必须大于0。默认情况下,数组的素被默认初始化。和内置类型的变量一样,如果在函数内部定义了某种内置类型的数组,那么默认初始化会令数组含有未定义的值。   
指向一维数组的指针_指针指向二维数组
指向一维数组的指针_指针指向二维数组   我们通过调试可以看到,arr[8]和arr[9]被初始化为不确定的值。如果需要初始化数组中的每一个素,并给出默认值,请参考下面的写法:   
指向一维数组的指针_指针指向二维数组
指向一维数组的指针_指针指向二维数组   
指向一维数组的指针_指针指向二维数组
指向一维数组的指针_指针指向二维数组   数组维度比提供的初始值数量大,则用提供的初始值初始化靠前的素,剩下的素被初始化成默认值。   初始值的总数量不应该超出数组维度的大小。   数组不允许拷贝和赋值。不能将数组的内容拷贝给其他数组作为其初始值,也不能用数组为其他数组赋值:   定义数组的指针和数组的引用:需要了解指向数组的指针的定义和指针数组的定义的区别:   访问数组中的素:数组可以使用下标运算符[]来访问。数组的下标从0开始。如何便利数组中的每个素:   数组在遍历时,需要时刻小心,防止数组下标越界,分为上溢和下溢。需要检查数组的下标是否在数组维度的范围之内。数组下标应该大于等于0而且小于数组的大小。只有小心谨慎和对代码进行测定的调试之外,别无他法。既然我们不能规避数组下标的越界,我们尽量在程序中减少对下标运算符[]的使用。尽量使用range-for语句。   指针和数组:在C++语言中,指针和数组有非常紧密的联系。使用数组的时候编译器一般会把它转换成指针。对数组的素使用取地址符就能得到指向该素的指针:   编译器会自动地将数组名替换为一个指向数组首素的指针。当使用数组为一个auto变量赋初始值时,推断得到的类型是指针而非数组:   必须指出的是,当使用decltype关键字时,decltype(arr)返回的类型是整型的数组,而不是指针:   指向数组素的指针支持递增(++)和递减(–)运算符,运用将指向数组素的指针向前移动到上一个位置或者向后移动到下一个位置上:   所以使用指针也能遍历数组中的素,之前介绍过其值两种遍历数组的方式,使用指针遍历数组时也需要特别小心,防止数组下标越界:   数组长度发生变化时,for循环中的数字4要跟着变。所以为了让指针的使用更简单、更安全,C++11标准引入了两个名为begin和end的函数。函数begin可以返回数组第一个素的地址;函数end返回数组最后一个素的下一位置:   这种写法明显要比使用数组下标更安全,而且更易于重构(for循环不依赖数组的长度,但是最佳实践还是range-for循环,毕竟类型int体现在for循环中)。   C++在堆上分配数组空间:

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/41424.html

(0)
上一篇 2024年 9月 7日
下一篇 2024年 9月 7日

相关推荐

关注微信