• <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>

            Onway

            我是一只菜菜菜菜鳥...
            posts - 61, comments - 56, trackbacks - 0, articles - 34

            一些糾結(jié)的c代碼

            Posted on 2012-05-28 11:52 Onway 閱讀(384) 評論(0)  編輯 收藏 引用 所屬分類: 碼兒快跑
            摘自《c專家編程》,代碼和答案都是基于gcc 4.6.1和32位linux系統(tǒng)。
            某些解釋不夠全面和正確,如果是錯(cuò)誤,請指正。

            1,解釋該聲明的含義:
            char * const *(*next)();

            2,解釋該聲明的含義:
            char *(* c[10])(int **p);

            3,解釋三個(gè)const的作用對象:
                    int foo(const char * const * const p);

            4,下面的賦值為什么不能進(jìn)行:
            char **a = NULL;
            const char **b = a;

            5,下面的代碼輸出是什么:
            main(int argc, char *argv[])
            {
            unsigned int a = 2;
            int b = -2;
            if (a > b)
            printf("a > b\n");
            else  if (a == b)
            printf("a == b\n");
            else
            printf("a < b\n");
            }

            6,下面代碼輸出的是什么:
            foo(short int *a)
            {
            *(long int *)a = 0xFFFFFFFFL;
            }
            main(int argc, char *argv[])
            {
            short int a = 1;
            short int b = 2;
            foo(&a);
            printf("b = %hu\n", b);
            }

            7,下面的代碼輸出是什么:
            float a = 1.0;
            long long int b = 1;
            printf("%u\n", sizeof(a + b));

            8,解釋signal函數(shù)的聲明:
            void (*signal(int sig, void(*func)(int)))(int);

            9,解釋下面三個(gè)類型:
            typedef int *ptr, (*fun)(), arr[5];

            10,糾結(jié)不?
            unsigned const long typedef int volatile *Shit;

            11,解釋為什么在file2中使用s[i]會產(chǎn)生錯(cuò)誤:
            /* file1 */
            int s[3] = {1, 2, 3};
            /* file2 */
            extern int *s;

            12,下面語句的輸出是多少?
            printf("%d\n", sizeof 'a');

            13,下面代碼的輸出是多少?
            func(char p[])
            {
            printf("%u\n", sizeof(p));
            }
            main()
            {
            char a[] = "hello";
            func(a);
            }



            個(gè)人理解的答案:
            1,
            char * const *(*next)();
            next是一個(gè)函數(shù)指針,其指向的函數(shù)不帶參數(shù),返回一個(gè)指向const char字符的指針的指針。

            2,
            char *(* c[10])(int **p);
            c是一個(gè)函數(shù)指針數(shù)組,數(shù)組大小為10,所指向的函數(shù)帶一個(gè)int **參數(shù),返回char *類型。

            3,
            int foo(const char * const * const p);
            第一個(gè)const修飾第二個(gè)星號表示的指針;
            第二個(gè)const修飾第二個(gè)星號表示的指針?biāo)傅膶ο骳har字符;
            第三個(gè)const修飾指針p;

            4,
            第一個(gè)星號表示的指針?biāo)赶虻膶ο蟛煌羔橆愋筒煌?/span>

            5,輸出:a < b

            6,輸出:b = 65535

            7,輸出:4

            8,
            void (*signal(int sig, void(*func)(int)))(int);
            signal是一個(gè)函數(shù),接受一個(gè)int和func函數(shù)指針,返回一個(gè)函數(shù)指針。

            9,
            typedef int *ptr, (*fun)(), arr[5];
            ptr是int*類型,
            func是函數(shù)指針類型,函數(shù)返回int,參數(shù)為空
            arr是int數(shù)組類型,長度是5

            10,
            unsigned const long typedef int volatile *Shit;
            Shit是unsigned const long int volatile *類型。

            11,
            兩個(gè)s具有相同的地址值,但file2中,被聲明為指針,s指針?biāo)傅刂凡淮_定。

            12,輸出:1

            13,輸出:4
            无码任你躁久久久久久| 99久久国产热无码精品免费 | 久久AV无码精品人妻糸列| 久久午夜福利无码1000合集| 久久人人爽人人精品视频| 久久AV无码精品人妻糸列| 91精品国产乱码久久久久久| 久久精品国产一区二区| 亚洲精品美女久久久久99| 久久免费美女视频| 亚洲综合熟女久久久30p| 久久伊人精品青青草原高清| 亚洲国产小视频精品久久久三级| 久久ww精品w免费人成| 久久夜色精品国产www| 久久99热狠狠色精品一区| 欧美精品九九99久久在观看| 久久午夜无码鲁丝片秋霞| 精品一区二区久久| 亚洲精品无码久久久久久| 久久久久亚洲爆乳少妇无| 国产亚洲综合久久系列| 精品久久人人爽天天玩人人妻| 日本三级久久网| 亚洲精品乱码久久久久久蜜桃不卡| 久久www免费人成精品香蕉| 久久99精品久久久久婷婷| 狠狠综合久久AV一区二区三区| 久久伊人五月天论坛| 久久夜色tv网站| 久久精品国产99国产精品澳门| 亚洲AV无码一区东京热久久| 伊人情人综合成人久久网小说| 精品熟女少妇aⅴ免费久久| 久久er热视频在这里精品| 久久久国产精品亚洲一区| 久久午夜羞羞影院免费观看| 亚洲精品午夜国产VA久久成人 | 精品久久久久久无码不卡| 久久99精品久久久久久噜噜| 91久久精品国产免费直播|