• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Chip Studio

            常用鏈接

            統計

            最新評論

            typedef 數組

             

            typedef到處都是,但是能夠真正懂得typedef使用的不算太多。對于初學者而言,看別人的源碼時對到處充斥的typedef往往不知所錯,而參考書又很少,所以在此給出一個源碼,供大家參考

             

            #include <stdio.h>

            #include <iostream.h>

             

            /* 避免Visual Cfor與標準for的不同 */

            #define for  if (0);  else for

             

            /* dim(a)是用于計算a的維數,不過只能計算數組的維數,不能計算指針的維數 */

            #define dim(a) (sizeof(a)/sizeof(a[0]))

             

            /* N1N4是幾個常量,以枚舉的形式定義 */

            enum {N1 = 2, N2 = 3, N3 = 4, N4 = 5};

             

            /* 這個C程序員都知道,就是將DataType定義為int型,便于擴充 */

            typedef int DataType;

             

            /* 定義一個一維數組,數組的元素維整型值 */

            typedef DataType ARR1[N4];

             

            /* 再定義一個一維數組,數組的元素維ARR1型,不過ARR1又是一個數組,所以

             * ARR2 實際上是一個矩陣

             */

            typedef ARR1 ARR2[N3]; /* 此處完全等價為typedef int ARR2[N3][N4];*/

             

            /* 按照ARR2的解釋,ARR3也是一個一維數組,不過數組元素的類型是ARR2的類型

             * 所有ARR3是一個三維數組

             */

            typedef ARR2 ARR3[N2]; /* 此處完全等價為typedef int ARR3[N2][N3][N4];*/

             

            /* 分別用定義好的ARR1,ARR2,ARR3定義三個變量a, b, c */

            ARR1 a; /* 此處完全等價于:int a[N4]; */

            ARR2 b; /* 此處完全等價于:int b[N3][N4]; */

            ARR3 c; /* 此處完全等價于:int c[N2][N3][N4]; */

             

            /* 下面函數給大家個示例看a,b,c如何使用 */

            void exam_1()

            {

                for (int i=0; i<dim(a); i++) a[i] = i+1;

             

                for (int i=0; i<dim(b); i++) for (int j=0; j<dim(b[0]); j++)

                    b[i][j] = (i+1)*10 + (j+1);

             

                for (int i=0; i<dim(c); i++) for (int j=0; j<dim(c[0]); j++)

                    for (int k=0; k<dim(c[0][0]); k++) c[i][j][k] = (i+1)*100 + (j+1)*10 + (k+1);

             

                printf("\nThe a is :\n");

                for (int i=0; i<dim(a); i++) printf("%4d ", a[i]);

                printf("\n");

             

                printf("\nThe b is :\n");

                for (int i=0; i<dim(b); i++)

                {

                    for (int j=0; j<dim(b[0]); j++) printf("%4d ", b[i][j]);

                    printf("\n");

                }

             

                printf("\nthe c is:\n");

                for (int i=0; i<dim(c); i++)

                {

                    for (int j=0; j<dim(c[0]); j++)

                    {

                        for (int k=0; k<dim(c[0][0]); k++) printf("%4d ", c[i][j][k]);

                        printf("\n");

                    }

                    printf("\n");

                }

            }

             

            /* 下面函數給大家演示數組在內存中的排列 */

            void exam_2()

            {

                int *pn = NULL;

             

                pn = (int *)a; /* 等價于 pn = &a[0]; */

                printf("\nThe a is :\n");

                for (int i=0; i<sizeof(a)/sizeof(DataType); i++) printf("%4d ", pn[i]);

                printf("\n");

             

                pn = (int *)b; /* 等價于 pn = &b[0][0]; */

                printf("\nThe b is :\n");

                for (int i=0; i<sizeof(b)/sizeof(DataType); i++) printf("%4d ", pn[i]);

                printf("\n");

             

                pn = (int *)c; /* 等價于 pn = &c[0][0][0]; */

                printf("\nThe c is :\n");

                for (int i=0; i<sizeof(c)/sizeof(DataType); i++) printf("%4d ", pn[i]);

                printf("\n");

            }

             

             

             

            int main(int argc, char* argv[])

            {

                exam_1();

                exam_2();

                return 0;

            posted on 2008-02-26 17:08 MyChip 閱讀(3516) 評論(0)  編輯 收藏 引用 所屬分類: C/C++/CLI

            久久亚洲日韩看片无码| 99国产欧美精品久久久蜜芽| 国产三级观看久久| 香港aa三级久久三级老师2021国产三级精品三级在 | 999久久久免费精品国产| 国产∨亚洲V天堂无码久久久| 久久精品国产亚洲沈樵| 久久久久亚洲AV综合波多野结衣 | 久久噜噜电影你懂的| 久久久久99精品成人片| 久久精品无码一区二区WWW| 国产精品久久久久9999| 免费精品久久天干天干| 99久久精品免费看国产一区二区三区| 久久亚洲中文字幕精品一区四| 久久亚洲中文字幕精品有坂深雪 | 久久国产高清一区二区三区| 久久夜色精品国产欧美乱| 久久成人18免费网站| 久久亚洲私人国产精品vA| 久久综合九色综合久99| 97久久精品人人澡人人爽| 色婷婷综合久久久久中文| 亚洲人成无码久久电影网站| 99久久精品久久久久久清纯| 久久综合狠狠综合久久| 久久妇女高潮几次MBA| 久久精品国产99久久香蕉| 国产精品成人99久久久久| 国产亚洲婷婷香蕉久久精品| 久久只有这精品99| 久久精品视屏| 久久久久国产一级毛片高清板| 欧美一区二区精品久久| 久久综合久久综合九色| 丰满少妇高潮惨叫久久久| 亚洲成色www久久网站夜月| 无码久久精品国产亚洲Av影片| 亚洲精品美女久久久久99| 久久影院综合精品| 久久天天躁狠狠躁夜夜躁2O2O|