• <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
            日韩欧美亚洲国产精品字幕久久久| 无码八A片人妻少妇久久| 99久久精品免费看国产一区二区三区 | 久久国产精品无码HDAV| 亚洲嫩草影院久久精品| 亚洲国产精品综合久久网络 | 久久久无码精品亚洲日韩蜜臀浪潮| 久久亚洲sm情趣捆绑调教| 国产精品禁18久久久夂久| 国产成人精品久久综合| 亚洲国产精品无码久久SM| 久久久久人妻一区精品果冻| 香蕉久久av一区二区三区| 精品国产乱码久久久久久浪潮| 亚洲精品蜜桃久久久久久| 99久久成人18免费网站| 久久午夜无码鲁丝片| 香蕉aa三级久久毛片| 国内精品久久久久久久coent | 久久青青草原国产精品免费| 久久精品视频一| 久久国产一片免费观看| WWW婷婷AV久久久影片| 亚洲中文字幕久久精品无码APP | 久久精品国产亚洲Aⅴ蜜臀色欲| 99精品国产在热久久无毒不卡| 亚洲人成网亚洲欧洲无码久久| 国产成人AV综合久久| 久久亚洲国产欧洲精品一| 久久精品人人槡人妻人人玩AV| 波多野结衣久久一区二区| 久久精品国产欧美日韩99热| 国产亚洲成人久久| 国产精品日韩欧美久久综合| 久久亚洲综合色一区二区三区| 成人久久精品一区二区三区| 国产亚洲美女精品久久久久狼| 国产精品一区二区久久| 无夜精品久久久久久| 亚洲国产日韩欧美久久| 国产精品免费久久久久影院|