zoukankan      html  css  js  c++  java
  • 数组指针和指针数组

    首先:
    校正一下读法:
    数组指针:给它在中间加上一个的,数组的指针,重心是指针,全名叫指向数组的指针,它就一个指针,指向数组

                    指针数组:同样也在中间加上一个的,指针的数组,重心是数组,全名叫存储指针的数组,一听名字就知道,里面存的是指针,所以它有很多个指针构成
    

    指针在32位系统中,占4个字节。

    首先讲一下指针数组:
    char *arr [4]={" hello " , " world "," hang" , " zhou "}; 数组中的4个指针元素,分别存放着4个字符串的首地址,存放在栈区中,初始化的值被分配在只读数据区,从栈区

    有4只看不见的手指向数据区的空间。

    再来看数组指针:总是搞不清这个,理由就是,不管赋值给它是一维还是二维数据,它都是二维来处理,它就是个二维指针,所以每次指向其所需的地址数值时,要解引用2次,

    第一次是所在行,确定进入哪个子集,第二次解引用是确定子集中的哪个位置

        数组指针也叫行指针,如:int (*p) [n]    每次p加1,不是实实在在的加1,而是跨过n个整形数据的长度,从a[0] [ ]到a[1] [ ]
    
        根据读法来判读属于哪个:看当前的P是什么(注意根据优先级),那么词组的中心词就是什么
    
     如:int (*p) [n]     ()的优先级比[ ]高,所以P是指针,所以就是数组指针
    

    ·```
    int main()
    {
    char a[5]={'A','B','C','D'};
    char (p3)[5] = &a;
    //在visual 2013 中下述语句无法编译通过,要进行类型转换
    // char (
    p4)[5] = a;
    char(p4)[5]=(char()[5])a; //可以编译通过
    return 0;
    }

    
        数组指针:指向的是整个数组,&a是整个数组的首地址,a是数组首元素首地址,两者的值虽然相同,但是类型不同。
  • 相关阅读:
    JS基本语法---while循环---练习
    JS基本语法---while循环
    JS基础语法---分支语句总结
    Python开发坦克大战
    基于Python的face_recognition库实现人脸识别
    10个Python 初学者必知编码小技巧
    论如何用python发qq消息轰炸虐狗好友
    Python + Selenium +Chrome 批量下载网页代码修改【新手必学】
    Python爬取mc皮肤【爬虫项目】
    Python 分发包中添加额外文件【新手必学】
  • 原文地址:https://www.cnblogs.com/ymd12103410/p/9648923.html
Copyright © 2011-2022 走看看