| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> c语言初阶(3-数组-下篇) -> 正文阅读 |
|
[数据结构与算法]c语言初阶(3-数组-下篇) |
晚上好哇!数组下篇正式开章,欢迎各位来宾(手动滑稽)。 这一篇我写成了一环套一环的递归格式,哈哈哈,说人话就是先解决最后的小问题,在回头解决开头的问题,不知道这种方式跟直接写哪种效果更好一点,有建议的话留言哈! 目录 1.数组的传参:????????在写很多函数的时候,我们都会把数组作为实参进行传递 ????????如下图,我们要使用函数计算数组开辟的空间大小,该功能用Quantity自定义函数实现。
??? ? ?(问题1:)那么我们这样写是正确的吗?我们试着运行一下,如果它是对的,那么很显然结果应该为10;
????????(问题2:?)????????结果是1,显而易见这种写法是错误的, ?那到底是为什么呢,难道没有发生临时拷贝将数组内容拷贝吗?? ? 2.数组名在解决这个问题之前,我们先来看一下数组名究竟是什么
????????在图中,打印发现arr的地址和&arr[0]竟然完全相同,并且我们还可以对arr解引用得到数组首元素。 ????????因此,我们可以得出结论,arr(即数组名)其实就是数组首元素的地址,没错,arr它其实是一个地址。 (问题3:?)????????那么问题又来了:? ? ? ? ? ????????如果arr是数组首元素的地址,那么sizeof(arr)/sizeo(arr[0])为什么可以用来计算数组的元素个数呢? ??(问题4:?)????????sizeof(arr)/sizeo(arr[0]) 我们将其解释为: sizeof(arr)是整个数组的大小,sizeof(arr[0])是数组第一个元素的大小,也就是单位元素的大小,总大小除于单位元素的大小,结果自然就是数组的个数了,但arr不是首元素地址吗? 2.1.数组名的特殊情况????????事实上,arr并不是总代表着首元素地址,它有着两个特殊情况。
? ? ? ? 那我们现在不如来看一下&arr的地址
(问题5:?)?????????????????咦,三个地址值完全相同,难道&arr不是整个数组的地址,而是首元素地址? ????????其实并不然,&arr确实是整个数组的地址,它们的值虽然相同,但它们有着完全不同的意义。
?3.地址的取出????????对于&操作符来说,它的作用是取出地址,但它取的只是一个地址,而一个地址不过是一个字节的大小,但如上图,int类型的a明明是是有4个字节的,这4个字节一定占据了4个连续的地址空间。 ????????因此,对于&来说,它所取的地址只是数字层面上最小的一个地址,也就是说,它只取出了a的最小地址。
(问题6:?)
4.拓展????????此时当对整型(int)指针变量p进行加减操作时,所加减的字节大小其实就是sizeof(int)的大小,即p+1,则地址增加4个字节
?5.return递归返回
?
一波小游戏即将来临!!!! ? ? 下一篇 -------> 三子棋小游戏 ?晚安噢! |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 14:50:36- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |