c++入门基本语句/算法——第八章-unit3:指针与数组的关系

hellơ̴̢̢̧̡̨̧̢̢͇̮̭͎̞̫̲̣̰̯̤̺̖͙̟͉̮͙̖͇̳̟̫̼̜̰̼̹͉̟̬̖̺̫͉̼͚̣͍͖͙͚͚̲̭̫͎̖̪̦̥̻̲̦͕͇̝̪̥̪͙͙̺͙͖̯͕͖̯̥̗̠̹̙̬̪̟̗͇̭͇̱͎̙̜̞̇̄̄́̋͋̔̎͂̎̆̂̀̅̎̉̔̉̄͛̔̆̿̓̿͋͌͛̿͌͒͋̆̏̽̀̓̂̂̑̓̆̀͛̄̿̍̍̓̊̓̿͌̄̚͘͘͜͠͝͝ͅͅ ?大家好,我是你们的新朋友鱼子酱老师。今天,我们要聊的是C++中一个既有趣又有点让人头疼的话题------指针与数组的关系。别担心,我会帮你走进这个看似复杂的概念。

1. 指针与数组

在C++的世界里,指针和数组就像是一对形影不离的好基友。它们之间的关系密切到让人难以分辨。首先,让我们来搞清楚什么是指针。简单来说,指针就是一个变量,它存储的是另一个变量的内存地址。而数组呢?它是一个存储相同类型元素的连续内存块。

2. 指针访问数组元素

当你有一个数组时,比如

cpp 复制代码
int arr[5] = {1, 2, 3, 4, 5};

,你可以通过指针来访问这个数组的元素。比如,int* ptr = arr;,这里ptr就是一个指向数组第一个元素的指针。你可以通过ptr[0]来访问数组的第一个元素,也就是1。

3. 指针与数组下标

这里有个小技巧,你可以直接使用指针的下标来访问数组元素,就像这样:ptr[0]、ptr[1]等等。这实际上是利用了指针的算术,因为数组的元素是连续存储的,所以ptr[1]实际上就是*(ptr + 1),也就是访问数组的第二个元素。

4. 指针与数组的边界

虽然指针和数组关系密切,但也要注意不要越界。数组有它自己的边界,比如arr[5],你不能访问arr[5],因为这超出了数组的边界,会导致未定义的行为,甚至程序崩溃。

5. 指针与数组的内存布局

数组在内存中是连续存储的,这意味着你可以通过指针算术来遍历整个数组。比如,你可以这样遍历数组:

cpp 复制代码
for (int i = 0; i < 5; ++i) { cout << arr[i] << " "; }

或者使用指针:

cpp 复制代码
for (int i = 0; i < 5; ++i) { cout << *(arr + i) << " "; }

6. 指针与数组的动态分配

有时候,你需要动态地分配数组的大小,这时候就需要用到指针了。你可以使用new关键字来动态分配内存,比如

cpp 复制代码
int* dynArr = new int[5];

。记得,使用完动态分配的内存后,要使用delete[]来释放内存,比如

cpp 复制代码
delete[] dynArr;

7. 结语

指针与数组的关系是C++中一个非常重要的概念,它们一起工作,让你能够高效地处理数据。记住,虽然指针很强大,但也要小心使用,避免越界和内存泄漏。

好了,今天的课就到这里。我们下次再见!------鱼子酱

相关推荐
Han.miracle1 分钟前
数据结构——二叉树的从前序与中序遍历序列构造二叉树
java·数据结构·学习·算法·leetcode
北冥湖畔的燕雀1 小时前
C++泛型编程(函数模板以及类模板)
开发语言·c++
Le1Yu1 小时前
分布式事务以及Seata(XA、AT模式)
java
寒山李白2 小时前
关于Java项目构建/配置工具方式(Gradle-Groovy、Gradle-Kotlin、Maven)的区别于选择
java·kotlin·gradle·maven
mit6.8242 小时前
前后缀分解
算法
你好,我叫C小白3 小时前
C语言 循环结构(1)
c语言·开发语言·算法·while·do...while
无妄无望3 小时前
docker学习(4)容器的生命周期与资源控制
java·学习·docker
MC丶科3 小时前
【SpringBoot 快速上手实战系列】5 分钟用 Spring Boot 搭建一个用户管理系统(含前后端分离)!新手也能一次跑通!
java·vue.js·spring boot·后端
千码君20163 小时前
React Native:从react的解构看编程众多语言中的解构
java·javascript·python·react native·react.js·解包·解构
夜白宋4 小时前
【word多文档docx合并】
java·word