zoukankan      html  css  js  c++  java
  • 指针知识梳理9-指针数组

    1、基本概念
    指针数组:本质是数组。数组的每一个元素是指针,数组的每一个元素能够存储地址。

    2、基本定义
    (1)先回想,数组定义基本模型
    type a[len];
    訪问 数组的每一个成员用 a[i];
    每一个成员所占内存大小 sizeof(type);
    数组总共占内存大小  sizeof(a) = sizeof(type)*len;
    (2)指针数组
    假设学会了指针,学会了数组,到了这里就是一个综合应用的问题。


    依照以上模型:
    ----------------------------------------------------------------
    type 为 char*
    char* a[5];
    定义数组a,数组每一个元素的类型为 char*。存储地址,a[i]占4个字节。
    那么能够写例如以下代码:
    char b;
    char c[10];
    a[0] = "hello";
    a[1] = (char*)malloc(5);
    a[2] = &b;
    a[3] = &c[0];

    a[4] = c;



    ------------------------------------------------------------------
    type 为 int*
    int* a[5];
    定义数组a,数组每一个元素的类型为 int*,存储地址,a[i]占4个字节。
    int b;
    int c[10];
    a[0] = &b;
    a[1] = (int*)malloc(sizeof(int)*5);
    a[2] = &c[0];

    a[3] = c; 

    请画内存图


    3、综合一维数组名的含义
    參照1,指针与一维数组:http://blog.csdn.net/xiaoliu0518/article/details/32710665
    參照2,指针的指针:http://blog.csdn.net/xiaoliu0518/article/details/33329833
    模型:
    type a[10];
    type *p;
    p+i  偏移的地址是 i*sizeof(type)
    p = &a[0];
    p = a;
    *(p+i) = p[i];
    *(a+i) = a[i];
    --------------------------------------------------
    假设type为char
    char a[10];
    char* p;
    p = a;
    p+i 地址偏移 i个字节,*(p+i)訪问1个字节
    ---------------------------------------------------
    假设type为char*
    char* a[10];
    char** p;
    p = a;
    p+i 地址偏移 4*i个字节。*(p+i)訪问4个字节

    3、综合应用
    #include <stdio.h>
    int main()
    {
    	
    	char *a[5];
    	char b[10] = "lilei";
    	char c[10];
    	char d = 'm';
    	char **p = a;
    	a[0] = "hello";
    	a[1] = (char*)malloc(5);
    	//安全检查。。

    a[2] = b; a[3] = c; a[4] = &d; strcpy(a[1],"bye"); strcpy(a[3],a[2]); for(i = 0;i<4;i++) { printf("a[%d] : %s ",i,a[i]); printf("a[%d] : %s ",i,p[i]); printf("a[%d] : %s ",i,*(p+i)); } printf("a[4]:%c ",*a[4]); printf("a[4]:%c ", *(*(p+4)) ); }




    刚開始学习的人一定要多写多练。








查看全文
  • 相关阅读:
    d2admin框架学习
    手机访问本地配置域名下的项目
    laydate 限制结束日期不能大于起始日期
    学习MVC之租房网站(十一)-定时任务和云存储
    学习MVC之租房网站(十)-预约和跟单
    学习MVC之租房网站(九)-房源显示和搜索
    学习MVC之租房网站(八)- 前台注册和登录
    学习MVC之租房网站(七)-房源管理和配图上传
    《程序员修炼之道》笔记(九)
    《程序员修炼之道》笔记(八)
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/10673310.html
  • Copyright © 2011-2022 走看看