码迷,mamicode.com
首页 > 编程语言 > 详细

C语言 二级指针内存模型

时间:2016-04-07 01:21:24      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:

//二级指针第一种内存模型

#include<stdio.h>
#include<stdlib.h>

//说明:①:类似于int a[5]={0},数组名a是一维数组a中首元素的指针;(我自认为此假设可应用于多维数组与指针)
//②二级指针的主要功能是修改一级指针的值

//打印一维数组
int PrintArr(char **pin,int num){
    int ERRO_MSG = 0;
    if (pin==NULL)
    {
        ERRO_MSG = 1;
        printf("pin==NULL erro msg:%d\n",ERRO_MSG);
        return ERRO_MSG;
    }
    //打印二级指针数组
    int i = 0;
    for (i = 0; i < num; i++)
    {
        //pin是一维数组首元素的指针,每个元素都是一个指针,pin的类型是指针类型
        //所以pin的步长是4个字节,
        //pin + i是第i个元素的指针,第i个元素的值就是*(pin + i),这个元素是指针
        printf("*--%s\n", *(pin + i));
        printf("[]--%s\n", pin[i]);
    }
    return ERRO_MSG;
}

void main(){
    //第一种使用方式
    //[]的优先级高于 *
    //因此char * myarr[] 首先是一个一维数组,
    //char *表明这个一维数组里每个元素的数据类型是 char *,(字符指针)
    //myarr表示的是数组首元素的指针(不是首元素的值)
    //本数组首元素是一个指针a,那么myarr就是指针a的指针,也就是myarr是一个二级指针
    char * myarr[] = { "aaabsdafa", "bbb", "ccc", "ddd" };
    PrintArr(myarr, 4);
    system("pause");
}

 

技术分享

技术分享

 

C语言 二级指针内存模型

标签:

原文地址:http://www.cnblogs.com/zhanggaofeng/p/5361861.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!