首页 > 编程语言 > 详细

C语言 二级指针内存模型③

时间:2016-05-13 08:55:47      阅读:173      评论:0      收藏:0      [点我收藏+]
//二级指针内存模型③
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

//内存模型详解
//一维数组类型是  typedef int Myarr[5]; Myarr a;(其中Myarr是一维数组类型)
//Myarr *p;p是一维数组的指针
//是一维数组的指针的类型是 typedef int(*PArrType)[5]; PArrType p;(其中PArrType是数组指针类型)p指向的是一个数组
//p=&a;
//typedef int(*PArrType)[5]; PArrType p;可以直接定义为int(*p)[5]; p是数组指针,指向一个 typedef int Myarr[5];类型的数组
//p的步长是 sizeof(int)*5=40个字节




//遍历数组
int printfarr(char (*pin)[20],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;
    //打印数组
    //注意 pin的步长是 sizeof(char)*20   pin+1 跨度是20个字节
    for (i = 0; i < num; i++)
    {
        printf("%s\n", *(pin+i));
    }
    return ERRO_MSG;
}

void main()
{
    char tarr[3][20] = {"aaa","bbb","ccc"};
    //tarr本质上是一个一维数组的指针 其类型是 typedef char(*PArrType)[20];  步长是 sizeof(char)*20
    //typedef char(*PArrType)[20]类型的变量可以直接定义为  char(*p)[20]
    printfarr(tarr, 3);
    system("pause");
}

 

C语言 二级指针内存模型③

原文:http://www.cnblogs.com/zhanggaofeng/p/5485583.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!