C 排雷 1 C 巢狀注釋問題

2021-10-07 13:36:52 字數 765 閱讀 6943

用vs2019列印巢狀注釋

#include

using

namespace std;

intmain()

本以為會分解為3部分,然後編譯報錯:

/*"*/

" /*"/*"*/

編譯結果是:

/*"*/

"/*"

/*"*/

初步分析,注釋的匹配也是從右向左進行的,下面測試一下:

cout<<

/*/*/**

/<本以為會分解為:

/*內部注釋內容*/

內部注釋內容為:/*/*

結果是最左側的注釋搭配在一起,分解為:

/*內部注釋內容*/

內部注釋內容為:/**

/

所以認為是從左向右就近匹配,下面測試:

cout<<

/* /* /*/*/

<本以為會分解為:

/*/* /*/*/

結果是:

/* /* /*/

*/

綜上分析的話,結果有點匪夷所思,可能因編譯器而有所不同,可能和內部識別雙引號和注釋符號構成元素的優先順序有關。

所以,c++不提倡注釋的巢狀,我們寫注釋的目的就是為了增加**的可讀性,方便開發團隊的溝通,複雜的巢狀沒有什麼意義(可能在實際開發中,巢狀注釋也有應用場景?有沒有大佬來指點一下)。

1 C基礎介紹

1.程式執行 解釋 借助乙個程式,那個程式能試圖理解你的程式,然後按照你的要求執行。編譯 借助乙個程式,就像乙個翻譯,把你的程式翻譯成計算機真正能懂的語言 機器語言 寫的程式,然後,這個機器語言寫的程式就能直接執行了。注意,語言本身沒有解釋和編譯之分,只是執行的方式不同而已。2.c語言在 作業系統 ...

1 C 程式設計基礎

1 c表示c程式檔案的字尾名,cpp表示c 程式檔案的字尾名 編寫的c 程式的字尾名既可以用.c也可以用.cpp 2 在linux環境下,c程式和c 程式都可以用gcc和g 來編譯,區別是gcc編譯器會根據檔案字尾名對函式或變數名做某些修正,乙個是c的編譯方式,乙個是c 的編譯方式。而g 無論是對....

分治 1 C 描述

花了一下午的時間去搞懂演算法筆記上面的那個全排列的問題,看來放鬆時間久了 能力的確會下降的很快 遞迴的概念很簡單,就是乙個函式自己呼叫自己,然後等到呼叫到不可再呼叫時依次從後往前返回值 函式遞迴有兩個特點 遞迴邊界 一般來指函式呼叫到最底層的結果 遞迴式 即遞迴呼叫 如果乙個函式沒有遞迴邊界,會因為...