中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      回憶青牛的筆試題,試題分享

      時間:2024-06-10 15:35:40 綜合指導 我要投稿
      • 相關推薦

      回憶青牛的筆試題,試題分享

        【zz】

      回憶青牛的筆試題,試題分享

        1 第一個

        void main()

        {

        int a[5] = {1,2,3,4,5};

        int *ptr = (int *)(&a + 1);

        int *ptr2 = a+1;

        printf("%d,%d,%d\n", *(a+1), *(ptr-1), *(ptr2-1));

        }

        輸出為2,5,1

        問題:中間那個5是怎么來的?

        int a[5] = {1,2,3,4,5};

        此語句會讓系統在棧內存中分配5個連續的int型(32位機是四個字節)空間 a是一個指針常量,a應該是被分配在靜態存儲區(不敢肯定,望大牛解惑 當然不是,是存在棧空間的動態存儲的,這我自己知道),并且有一個固定的值假設該數組的首地址為4000,即a的值是4000,那麼數組元素5的地址應該是&a[4] = 4000+4*4 = 4016 另外假設a的地址是3000

        int *ptr = (int *)(&a + 1);

        指針做加法時,我們要關心的不是指針本身,而是指針所指向的數據類型很明顯&a是一個指針(指針和地址的概念是等價的,若對這句話有異議,我們可以一起討論),這個指針所指向的是a 。而a是一個數組類型(注意,這里不能將a理解為一個指針常量,數組和指針的區別還是很大的),sizeof(a) = 20

        所以 ptr = &a+1 = 3000+20 = 3020,在將其轉換為int*型

        所以ptr-1 = 3020 - 4 = 3016, 這片內存中的數是不確定的, 所以第二個打印出來5完全是碰巧的,要不就是編譯器的問題

        記住,數組就是數組,指針就是指針,千萬不要混用(雖然有時候混用是正確的). 只有當數組以實參傳遞給函數時,它才會變成指針。

        這道題我們應該這樣理解:

        a是一個int[5]型的數組,那么&a自然是指向這個數組(千萬不要以為&a指向一個指針常量,這就是上面所犯的錯誤),那么&a+1自然是指向下一個數組

        所以 ptr = 4000 + 20 = 4020 , 而不是3016。

        第二題

        void main()

        {

        char a[][3] = {1,2,3,4,5};

        cout<

        }

        輸出為12345

        問題:a[1][2]為啥是0,而不是隨機值?

        此題中 a[][3] 與 a[2][3]是等價的,系統會自動不上一個\0(控制字符)如果輸出a[1][2]不會輸出數值0,因為0對應字符是(null)這個控制字符,因此會啥也不輸出,只是一個空格a[0]代表了字符數組(字符串)的首地址,大家都知道如果用cout輸出一個字符串名字(也即首地址)會輸出該字符串的內容,因此cout<

        三、

        class cls

        {

        public:

        virtual void func1(){}

        virtual void func2 (){}

        void func3(){}

        protected:

        private:

        static char m_data;};

        int main()

        {cout

        return 0; }

        輸出4 理由:static變量占用的是靜態區內存而cls占用的是動態區,因此不含有char m_data的內存, func3函數是不占用內存的(不管是否在類內實現還是在類外實現,也不管是否有參數和返回值),實際上cls的內存只有分配了一個虛擬函數表的地址,用來管理虛擬函數的,不論加入多少虛擬函數都只有4個字節的大小,如果把static去掉,那將輸出8,而不是5,這跟struct的內存對齊是一個道理的。

        但當類是空類是,只占有1個字節,這大概是系統至少要給類分配一個最小空間以便讓系統知道有該類的存在。


      【回憶青牛的筆試題,試題分享】相關文章:

      騰訊筆試題 試題分享02-24

      上海理工筆試回憶,試題分享11-21

      采購人員筆試題,試題分享02-25

      HTC筆試題分享11-21

      IT相關筆試題分享11-21

      寶潔 筆試題分享11-21

      思科 筆試題分享11-21

      CLUB筆試題分享11-21

      軟件筆試題 分享11-21

      主站蜘蛛池模板: 宜昌市| 偷拍激情视频一区二区| 2022AV一区在线| 色窝综合网| 日本一极品久久99精品| 当涂县| 国产成人亚洲综合小说区| 日韩精品不卡一区二区三区| 日本午夜按摩在线观看| 国产人妖赵恩静在线视频| 亚洲成aⅴ人片在线观看天堂无码 国产精品一区二区三区色 | 久久国产精品免费一区六九堂| 日本精品人妻在线观看| 白白色永久免费视频播放| 人妻少妇精品视频中文字幕国语| 无码国产精品一区二区AV| 久久99久久99精品免视看国产成人| 亚洲日韩精品AⅤ片无码富二代 | 亚洲人成绝费网站色www| 区一区一日本高清视频在线观看| 精品国产高清一区二区广区| 亚洲综合日韩中文字幕| 91蜜桃臀免费在线观看| 亚洲成片在线看一区二区| 99久久99久久精品免观看| 1234.com麻豆性爰爱影| 在线观看亚洲视频一区二区三区 | 人妻无码一区二区19P| 精品91精品91精品国产片| 日本午夜一区二区视频| 家庭乱码伦区中文字幕在线| 国产精品人人爱一区二区白浆| 日韩不卡无码三区| 久久精品国产亚洲av热一区| 女人高潮呻吟在线观看| 女人的天堂av免费看| 久分夜色精品国产噜噜亚洲av| 灯塔市| 旌德县| 国产福利97精品一区二区| 91精品啪在线看国产网站|