• <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];*/

             

            /* 分別用定義好的ARR1ARR2ARR3定義三個變量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

            精品久久久久久久| 久久水蜜桃亚洲av无码精品麻豆 | 久久精品国产99国产精品澳门| 久久99热这里只频精品6| 久久久无码精品亚洲日韩蜜臀浪潮 | 久久久久久亚洲AV无码专区| 东京热TOKYO综合久久精品| 国产精品99久久久久久宅男| 久久精品中文字幕有码| 久久综合给合久久狠狠狠97色| 人人狠狠综合久久亚洲88| 99久久精品国产一区二区| 一本伊大人香蕉久久网手机| 久久精品无码一区二区WWW| 国产成人久久精品一区二区三区 | 精品国际久久久久999波多野| 久久精品国产黑森林| 久久久久亚洲AV无码专区体验| 97精品国产97久久久久久免费| 精品伊人久久久| 久久99国产精品成人欧美| 久久综合久久综合九色| 99久久精品这里只有精品| 亚洲国产精品无码久久久不卡 | 久久午夜伦鲁片免费无码| 久久精品亚洲福利| 久久成人影院精品777| 亚洲精品乱码久久久久久自慰| 天堂无码久久综合东京热| 精品水蜜桃久久久久久久| 国产欧美一区二区久久| 久久久久成人精品无码中文字幕| 中文字幕精品久久| 久久777国产线看观看精品| 午夜欧美精品久久久久久久| 国产精品成人久久久| 久久亚洲中文字幕精品一区| 久久免费国产精品| 久久久无码精品亚洲日韩软件| 久久无码精品一区二区三区| 久久综合色之久久综合|