• <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久久免费国产精品特黄| 久久精品国产亚洲av水果派| 热re99久久精品国99热| 久久亚洲国产午夜精品理论片| 久久综合九色综合久99| 欧美精品丝袜久久久中文字幕| 久久久无码精品亚洲日韩蜜臀浪潮| 久久午夜无码鲁丝片| 久久艹国产| 97久久精品无码一区二区| 欧美日韩精品久久久免费观看| 亚洲中文字幕无码久久精品1| 亚洲国产精品久久久久婷婷软件| 久久人人青草97香蕉| 日韩精品久久久久久| 久久久久久久免费视频| 国产女人aaa级久久久级| 久久亚洲国产成人精品性色| 青青草原综合久久大伊人导航| 久久久精品人妻一区二区三区四| 国产午夜福利精品久久| 91精品国产91久久综合| 无码人妻久久一区二区三区免费| 久久99精品国产麻豆不卡| 久久伊人精品青青草原高清| 欧美丰满熟妇BBB久久久| 久久人与动人物a级毛片| 三级片免费观看久久| 久久久久亚洲AV成人网人人网站| 97超级碰碰碰久久久久| 久久久久久国产精品无码超碰| 中文精品久久久久人妻不卡| 欧美日韩久久中文字幕| 国内精品久久久久影院亚洲| 伊人久久国产免费观看视频| 亚洲精品WWW久久久久久| 久久久久久久免费视频| 午夜精品久久久久久久久| 久久免费的精品国产V∧| 99久久99这里只有免费费精品|