美文网首页
八、数组和指针的寻址

八、数组和指针的寻址

作者: Justin_901e | 来源:发表于2019-07-16 10:58 被阅读0次

虽然数组和指针都是针对地址操作,但它们有许多不同之处。数组是相同数据类型的数据集合,以线性方式连续存储在内存中; 而指针只是一个保存地址值的4字节变量。在使用中,数组 名是一个地址常量值,保存数组首元素地址,不可修改,只能以此为基地址访问内存数据; 而指针却是一个变量,只要修改指针中所保存的地址数据,就可以随意访问,不受约束。

8.1 数组在函数内

当在函数内定义数组时,如果无其他声明,该 数组即为局部变量,拥有局部变量的所有特性。数组中的数据在内存中的存储是线性连续的,其数据排列顺序由低地址到高地址,数组名称表示该数组的首地址。

8.2 数组作为参数

当数组作为函数形参时,函数参数中保存的是数组的首地址,是一个指针变量。

8.3 数组作为返回值

数组作为函数的返回值与作为函数的参数大同小异,都是将数组的首地址以指针的方式进行传递,但是它们也有不同。当数组作为参数时,其定义所有的作用域必然在函数调用 以外,在调用 之前已经存在。所以在函数中对数组进行操作是没有问题的,而数组作为函数返回值则存在着一定的风险。

栈平衡错误演示

8.4 下标寻址和指针寻址

访问数组的方式有两种:通过下标访问(寻址)和通过指针访问(寻址)。指针寻址的方式不但没有下标寻址的方式便利,而且效率也比下标寻址低。由于指针是存放地址数据的变量类型,因此在数据访问过程中需要先取出指针变量中的数据,然后再针对此数据进行地址偏移计算,从而寻址到目标数据。数组名本身就是常量地址,可直接针对数组名所代替的地址值进行偏移计算。

相关文章

  • 八、数组和指针的寻址

    虽然数组和指针都是针对地址操作,但它们有许多不同之处。数组是相同数据类型的数据集合,以线性方式连续存储在内存中;而...

  • 2017年9月23日学习总结

    今天上午老师讲了指针,指针就是间接寻址,通过地址找到变量里的数据。讲解了指针的运用,还有指针与数组和函数的运用。 ...

  • C语言指针相关

    一、指针数组 和 数组指针的区别:1:指针数组,还是数组,数组每个元素是指针。2:数组指针,是指针,指向的是数组。...

  • JNI基础 -- C++基础知识(指针数组)

    数组和指针,数组指针,指针数组 数组 声明一个数组 这个比较简单,不做过多介绍 数组指针 数组指针是一个指针,指向...

  • 编译器笔记59-代码生成-指令选择

    运算语句的目标代码 数组寻址语句的目标代码 指针存取语句的目标代码 条件跳转语句的目标代码 过程调用和返回的目标代码

  • C_language_renew02

    指针知识点回顾札记 指针的类型,决定了该指针的寻址能力,即从指针所代表的地址处的寻址范围 在32位机上,地址的大小...

  • 关于二维数组及数组指针和指针数组的深度思考(涉及指针)

    转载请注明在纠结指针数组和数组指针时无意发现的小细节。总算搞清数组指针和指针数组。 数组指针定义 int (*p)...

  • 可寻址,不可寻址

    //可寻址,不可寻址map中的元素不可寻址,切片中的元素可寻址 使用指针作为方法的 receiver只要值是可寻址...

  • 数组指针和指针数组

    1.数组名 数组首元素的地址和数组地址是两个不同的概念 数组名代表数组首元素的地址,它是个常量. 变量本质是内存空...

  • 数组指针和指针数组

    1.数组指针(又称行指针) 二维数组赋给一指针时: 2.指针数组 二维数组赋给一指针数组: 小结:数组指针只是个指...

网友评论

      本文标题:八、数组和指针的寻址

      本文链接:https://www.haomeiwen.com/subject/aguokctx.html