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

    //注意指针数组和数组指针分别是如何指向二维数组的
    #include <stdio.h>
    main()
    {
        static int m[3][4]={0,1,2,3,4,5,6,7,8,9,10,11};/* 定义二维数组m并初始化*/
        int (*p)[4];//数组指针  p是指针,指向一维数组,每个一维数组有4个int元素
        int i,j;
        int *q[3];//指针数组 q是数组,数组元素是指针,3个int指针
        p=m;    //p是指针,可以直接指向二维数组
        printf("--数组指针输出元素--\n");
        for(i=0;i<3;i++)/*输出二维数组中各个元素的数值*/
        {
            for(j=0;j<4;j++)
            {
                printf("%3d ",*(*(p+i)+j));
            }
            printf("\n");
        }
        printf("\n");
        for(i=0;i<3;i++,p++)//p可看成是行指针
        {
            printf("%3d ",**p);//每一行的第一个元素
            printf("%3d ",*(*p+1));//每一行的第二个元素
            printf("%3d ",*(*p+2));//每一行的第三个元素
            printf("%3d ",*(*p+3));//每一行的第四个元素
            printf("\n");
        }
        printf("\n");
        printf("--指针数组输出元素--\n");
        for(i=0;i<3;i++)
            q[i]=m[i];//q是数组,元素q[i]是指针
        for(i=0;i<3;i++)
        {
            for(j=0;j<4;j++)
            {
                printf("%3d ",q[i][j]);//q[i][j]可换成*(q[i]+j)
            }
            printf("\n");
        }
        printf("\n");
        q[0]=m[0];
        for(i=0;i<3;i++)
        {
            for(j=0;j<4;j++)
            {
                printf("%3d ",*(q[0]+j+4*i));
            }
            printf("\n");
        }
        printf("\n");
       
    }
    大部分转载 小部分自写
  • 相关阅读:
    前端与算法 leetcode 344. 反转字符串
    JavaScript闭包使用姿势指南
    前端与算法 leetcode 48. 旋转图像
    前端与算法 leetcode 36. 有效的数独
    前端与算法 leetcode 1. 两数之和
    前端与算法 leetcode 283. 移动零
    前端与编译原理 用js去运行js代码 js2run
    前端与算法 leetcode 66. 加一
    前端与算法 leetcode 350. 两个数组的交集 II
    前端与算法 leetcode 26. 删除排序数组中的重复项
  • 原文地址:https://www.cnblogs.com/8586/p/1771897.html
Copyright © 2011-2022 走看看