zoukankan      html  css  js  c++  java
  • C语言细节之五:数组和指针

    1、注意:类型T的指针和类型T的数组名并非同一个类型。

    例如:char a[6] 与 extern char *a并不能匹配

    2、char a[] 与 char *a是不一样的。

    例如:char a[6]请求预留6个字符的位置,并用“a”表示,实际是说有一个称为“a”的位置,可以放入6个字符。sizeof(a)为6,但是:如果把a做实参,在被调用函数用对形参做sizeof,就只取得到形参指针变量本身的长度(4个字节)

           而char *P是请求一个位置放一个指针变量,名称为P。

    3、作为函数形参,char a[]实际上与char *a等价

        数组根本就不能传入函数,只是允许用形参a作为一个指针去访问原函数中数组的元素。所以函数声明void f(char a[])与void f(char *a)是等价的,a[]是作为指针a处理的。

    4、数组和指针的区别

    (1)数组空间固定,指针可动态分配

    (2)sizeof数组为数组长度(函数形参数组例外,因为形参数组实际就是指针),sizeof指针总是指针变量自身长度

    5、声明一个数组指针

       指向整个数组的指针:int (*ap)[N],但是毫无用处

    6、动态分配多维数组的方式

        可使用一维数组来模拟也可使用数组指针

    7、当数组是函数的参数时,sizeof不能正确报告数组大小因为此时数组参数当作指针对待。

  • 相关阅读:
    L347
    2019.4.22 英语阅读
    L345 大脑复生
    L343 中译英
    L342 Air Pollution Is Doing More Than Just Slowly Killing Us
    Is It Always a Good Idea to Reach Outside Your Comfort Zone?
    2019.4月 商务英语场景
    元器件横截面-这里有很多专业词汇
    python 列表和元组 还有range
    python 基本数据类型简介intstr bool
  • 原文地址:https://www.cnblogs.com/steven_oyj/p/1741909.html
Copyright © 2011-2022 走看看