zoukankan      html  css  js  c++  java
  • 指针,数组,字符串的区别(高质量程序设计指南C++/C语言第7章)

    指针:

            指针是变量,和平时的那些变量没有本质的差异,不同的只是它的值和类型,、,即解释方式

           二进制层面:指针的值是内存单元的地址,而变量是引用内存单元值的别名

           语言层面:指针的值就是变量的地址。

           对象的内存地址就是它的指针。

           类型名和“*”组合起来一个指针类型,但是“*”是与后面的指针变量名先结合的

           void*指针不能参加算术运算

           不能对字面常量来取址,因为它是保存在符号表中的

     

    数组:

              数组是内存中的一段连续内存,

              下标操作符返回的就是元素的引用,当使用[]时,其实编译器自动的将其转化为指针的表示形式,再编译

              数组名本身就是一个指针,一个指针常量。

           数组传递:

               数组不能从函数返回,但是数组可以作为函数的参数

               一维数组-----数组作为函数参数时并非是传递整个数组的内容,而是退化为一个同类型的指针。

               多维数组-----转化为其等价的数组指针。

    字符串,字符数组,/0:

        字符数组是类型为char的字符数组

        字符串是以/0结束的字符数组,他是可变长的

    引用与指针:

        &是C++引入的新概念

        引用在创建的同时必须先初始化,即必须引用到一个有效的对象,而指针则不需要,可以是NULL,可以在之后再赋值

        不存在一个NULL的引用,引用必须关联到有效的存储单元

        不要用字面值常量来初始化引用

         引用一旦被初始化为一个对象,就不会再被修改为另一个对象(从一而终)

        类的引用的创建不需要调用构造函数和析构函数

        在语言层面引用的用法和对象的用法一样,而在二进制层面,编译器会自动将其转化为指针,所以引用既具有指针的效率

    又具有变量使用的方便性和直观性。

               

              

  • 相关阅读:
    C# DateTimePicker控件详解
    python2.7虚拟环境virtualenv安装及使用
    Python2.7 安装numpy报错解决方法
    关于C语言中递归的一点点小问题
    Drozer--AndroidApp安全评估工具
    Android--native层so文件调试
    New Blog
    小旭讲解 LeetCode 53. Maximum Subarray 动态规划 分治策略
    2017年度回忆与总结 – 心态
    基于文本图形(ncurses)的文本搜索工具 ncgrep
  • 原文地址:https://www.cnblogs.com/yanliang12138/p/4669832.html
Copyright © 2011-2022 走看看