• C专家编程 第9章 再论数组 9.1 什么时候数组与指针相同


    千万千万,绝不要忘了C语言在表达式中把一个类型为T的数组的左值当作是指
    向该数组的第一个元素的指针。          ---C程序员名言(传说) 

    什么时候数组和指针相同
    声明本身还可以进一步分成3中情况:
    *外部数组(external array)的声明;
    *数组的定义(记住,定义是声明的特殊情况,它分配内存空间,并可能提供一个初始值);
    *函数参数的声明。
    所有作为函数参数的数组名总是可以通过编译器转换为指针。在其他所有情况下(最有趣的情况就是“在一个文件中定义为数组,在另一个文件中声明为指针”)数组的声明就是数组,指针的声明就是指针,两者不可混淆。但在使用数组(在语句或表达式中引用)时,数组总是可以写成指针的形式,两者可以互换。
     
                                               extern,如extern char a[];不能改写指针的形式 
                       声明                 定义,如char a[10];不能改写成指针形式 
                                               函数的参数,如func(char a[]); 可以自行选择数组形式或者是指针形                                                 式,只要你喜欢 
    数组 
                在表达式中使用      如c = a[i]; 可以自行选择数组形式或者是指针形式,只要你喜欢

                                            图9.1 数组和指针相同的时候
    然而,数组和指针在由编译器处理时是不同的,在运行时的表示形式也是不一样的,并可能产生
    不同的代码。对编译器而言,一个数组就是一个地址,一个指针就是一个地址的地址。                                                                         

  • 相关阅读:
    【TypeScript】模块化和类型声明规则
    mysql索引不生效
    分布式存储在数据治理场景中的价值
    SystemVerilog学习(4)——自定义结构
    java基础入门(一)
    MAUI Blazor 权限经验分享 (定位,使用相机)
    闭式旁流水处理器简介
    学习pytorch6 torchvision中的数据集使用
    背景的样式(雪碧图)
    【量子学习笔记】纯态、混合态、直积态及纠缠态的概念区分及理解
  • 原文地址:https://blog.csdn.net/weixin_40186813/article/details/126088275