• <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>
            隨筆-145  評論-173  文章-70  trackbacks-0
                 今天下午去參加光電實驗室的暑期實習生筆試,本來不大想去的,因為畢竟暑假已經確定了實習,所以即使通過了也肯定不會去的,而且到時候要解釋的話也會很麻煩,不過作為國家重點實驗室,我想看看筆試題目到底怎么樣,也或許是因為最近剛好考試周完了,閑著蛋疼,所以就跑過去了。
               原題目很簡單,就是如下:
                   struct tr t[3] = {5,&t[1],7,&t[2],9,0};
                   struct tr *p;
                   p=&t[0];
              然后列出了幾個選項,讓說出了分別哪一個表達式表示的值為6.具體選項就是:
                 p->n++   ++p->n    (*p).n++    ++p->n
              當然,題目的話選項還有些不記得了,不過覺得其實只要理解了原理,那么就很容易判斷了。

            先看代碼:
             
            #include <stdio.h>

            struct tr{
                
            int n;
                
            struct tr *next;
            };

            int main(){
                
            struct tr t[3= {5,&t[1],7,&t[2],9,0};
                
            struct tr *p;
                p
            =&t[0];
                printf(
            "p->n++=%d\n",p->n++);
                printf(
            "p->n=%d\n",p->n);
                printf(
            "*p=%d\n",*p);
                printf(
            "(*p).n=%d\n",(*p).n);
                printf(
            "(*p).n++=%d\n",(*p).n++);
                printf(
            "++p->n=%d\n",++p->n);
            }


            運行結果如下:
            p
            ->n++=5
            p
            ->n=6
            *p=6
            (
            *p).n=6
            (
            *p).n++=6
            ++p->n=8
            Press any key to 
            continue


             首先,看看上面的題目中的那個初始化的含義吧!
             struct tr t[3] = {5,&t[1],7,&t[2],9,0};

            注意這樣的一個結構體式可以初始化的,不同于C++的作用域限定范圍!struct是公有的數據訪問權限。

            剩下了的問題就是,各個的含義是多少了。
            p->n 表示的就是p指向的節點的證書范圍域,所以是5,當然:重點來了,由于是說的表達式的值,所以分為前置和后置表達式的區別了。
            (關于前置和后置的區別見我的這篇博文:http://www.shnenglu.com/deercoder/archive/2010/01/22/106251.aspx
            如果是p->n++,那么這個表達式的值為:5,但是運算完成之后,n的值會變化,所以n的值是6,但是表達式的值的含義要搞清楚,確切的說就是這個表達式的結果,由于后置的++是在完成之后才做的,所以不能影響到表達式的值,于是就為5。
            而前置的++則是先進行++運算之后才得到運算的結果,所以如果是++p->n的話值就是6.

            注意我的這個Demo的例子中,由于將所有表達式的值都放在一起輸出,所以前面的操作會影響后面的值和表達式。比如第一個輸出時5,但是會修改第一個節點的n值變為6,所以后面的輸出相應的要修改!

            題目中問的是值,所以直接單個的輸出也是可以的,注意更能直接的看到結果。
            另外很簡單的幾點是:
            1. p->  和 *p. 操作時一樣性質,一直是直接指針訪問,一個是用的先訪問節點,然后通過節點的域來得到相應的值。

            2.運算的優先級。注意->和.操作符的運算級都要高些,所以先進行的。

            3.等價的寫法。p->n ===========(*p).n


            ps:前段時間忙著準備考試,考試周當然比較忙,而且突然發現最近博客沒有怎么更新了,說明自己常常以各種借口放松對技術的學習,鄙視下自己,總結下前段時間的事情吧:

            1.準備考研。說是準備,其實就是看看單詞,不過覺得還是比較難,很多不認識,由于沒有拿到保底的工作offer,所以現在就只能破釜沉舟了,后面也就沒有參加或者不計劃參加什么網易游戲,阿里巴巴,百度什么的筆試了,畢竟想起來要是暑假實習就耗上2個多月或者3個月的話,考研的事情就會徹底的泡湯了。

            2.軟考。再次華麗麗的裸考,大學里面的裸考很多啊,四六級都是,不過分數不錯,而且我也比較容易滿足,都是550+,雖然不高,不過一次性過了,而且沒有付出的感覺還是很好。這次軟件設計的考試,完全都沒有時間準備,因為有期中考試和無盡的實驗,雖然考到軟件工程和設計模式的話我全部都是懵的,不過上午題目覺得問題不大,而下午的就覺得比較懸了,感覺憑著一點老底子,有一半希望吧。(數據流圖,設計模式,軟件工程完全不會啊~~)

            3.考試周。昨天才考完,下半學期又要忙了,沒辦法,先緩緩吧。
            posted on 2010-05-29 00:53 deercoder 閱讀(1046) 評論(0)  編輯 收藏 引用 所屬分類: C++
            久久精品一本到99热免费| 伊人色综合久久天天网| 国产精品久久99| 天天久久狠狠色综合| 久久国产热这里只有精品| 亚洲欧美一区二区三区久久| 东方aⅴ免费观看久久av| 精品国产乱码久久久久久1区2区 | 久久精品无码一区二区三区免费| 精品久久久久久99人妻| 久久久久久伊人高潮影院 | 久久久久免费视频| 午夜精品久久久久久久久| 亚洲一本综合久久| 亚洲国产精品无码久久一区二区| 一本色道久久88加勒比—综合| 99久久综合国产精品免费 | 久久精品桃花综合| 国产精品无码久久综合网| 一本一道久久综合狠狠老| 99久久精品无码一区二区毛片| 久久国产免费直播| 久久综合九色综合久99| 99re久久精品国产首页2020| 久久99国产精品久久99小说| 国产99久久久国产精免费| 少妇久久久久久久久久| 久久久国产视频| 亚洲国产综合久久天堂| 久久99精品久久久久久秒播| 四虎国产永久免费久久| 狠狠88综合久久久久综合网| 亚洲色婷婷综合久久| 亚洲狠狠婷婷综合久久久久| 久久无码专区国产精品发布| 精品久久久久久久国产潘金莲| 久久婷婷五月综合97色直播| 人妻精品久久久久中文字幕 | 青青草原综合久久大伊人精品| 亚洲色大成网站www久久九| 无遮挡粉嫩小泬久久久久久久 |