歡迎辭

歡迎來到“篤志以礪,決起而飛”!
如果您是第一次來到本站,建議訪問本站導讀以便更快地了解本站。
如果您喜歡本站,歡迎訂閱

 

2012 年五月
« 四  
 123456
78910111213
14151617181920
21222324252627
28293031 

C++筆記:聲明和定義

這是容易混淆的兩個概念。簡單點說,聲明就是告訴編譯器有這個名字,定義就真正的為它分配存儲空間。 在《C++Primer》第四版 2.3.5節中這麼說到:“變量的定義用於為變量分配存儲空間,還可以為變量指定初始值。在一個程序中,變量有且僅有一個定義。聲明用於向程序表明變量的類型和名字。定義也是聲明:當定義變量時我們聲明了它的類型和名字。可以通過使用extern關鍵字聲明變量名而不定義它。不定義變量的聲明包括對象名、對象類型和對象類型前的關鍵字extern。” 需要注意的是: 1.定義也是聲明,extern聲明不是定義,即不分配存儲空間。extern告訴編譯器變量在其他地方定義了。 例如:

?View Code CPP1 2 extern int i; //聲明,不是定義 int i; //聲明,也是定義

2.如果聲明有初始化式,就被當作定義,即使前面加了extern。 例如:

?View Code CPP1 extern double pi=3.1416; //定義

只有當extern聲明位於函數外部時,才可以被初始化。

[...]

C++ 筆記:使用轉義字符書寫非打印字符

為了輸入非打印字符,C++定義了一些轉義字符。 C++ 中常用的轉義字符如下。

換行符 \n 回車符 \r 水平製表符 \t 單引號 \’ 雙引號 \" 正斜線 \\

除了上述轉義字符外,C++還有一些轉義字符。 1、十六進制轉義 使用 \x + 十六進制數據。

[...]

C++ 筆記:關於輸入和輸出

使用標準庫進行控制台輸入輸出時,有一些需要知道的內容。

更新緩衝區

使用 C++ 進行控制台輸出時,系統將先把內容輸出到緩衝區,然後再顯示到屏幕或輸出到其它輸出流的目的地上。為了保證獲取輸出結果,必須注意更新緩衝區。

導致緩衝區內容被刷新的幾種情況

1、程序正常結束。作為main返回工作的一部分,將清空所有輸出緩衝區。 2、緩衝區可能已經滿了,在這種情況下,緩衝區將會在寫下一個值之前刷新。 3、用操作符顯式地刷新緩衝區,例如行結束符endl和flush。 4、在每次輸出操作執行完後,用unitbuf操作符設置流的內部狀態,從而清空緩衝區。 5、可將輸出流與輸入流關聯起來。在這種情況下,在讀輸入流時,將刷新其關聯的輸出緩衝區。 此外還應注意,如果程序不正常結束,輸出緩衝區將不會刷新。調試程序時,必須保證期待寫入的每個輸出都確實被刷新了。最好的方法是保證所有的輸出操作都顯式地調用了flush或endl。 下面的程序輸出一些值並關注其緩衝區的狀態。

[...]

C++筆記:入門

C++是一個面向對象的功能強大的編程語言。系統的學習C++,不但可以讓我掌握一件編程的利器,而且對於我提高編程素養會有很好的作用。

第一個C++程序 ?View Code CPP1 2 3 4 int main() { return 0; } C++不是完全面向對象的語言

在學習C#時,有一句話很重要:一切必須屬於類。而在C++中卻沒有這樣的規定。在C++的這個典型的空程序中,不存在類。

對上述程序添加標準庫函數

在 C++ Primer 第四版中,作者特意強調了庫的重要性,並把標準庫的引入放到了最開始的地方。因此,我也提前領略 C++ 標準庫的使用。

[...]

模擬賽六 賽後總結

昨天進行了模擬賽,很不爽,只有120分。想當然讓我措失了80分,數學知識不能合理利用讓我又失去了80分。懶惰也讓我失去了一些分數。 從現在開始,我總結一下做題的情況和問題。將發布各題的解題報告。

第一題:不會,騙分 騙分也是一門藝術,不過只騙了20分。 我的騙分程序:(反正不會寫,索性用 C++ 而不是 Pascal 寫了一個騙分程序新鮮一下。)

  /*    Cheat By Ceeji XD  */  #include <cstdio>  using namespace std;  int n,q;  int main()  {      freopen(“count.in”,”r”,stdin);      freopen(“count.out”,”w”,stdout);      scanf(“%d”,&n);      scanf(“%d”,&q);      if (n==1) { printf(“%d\r\n”,(1 % q));  }      if (n==2) { printf(“%d\r\n”,(1 % q));  }      if (n==3) { printf(“%d\r\n”,(2 % q));  }      if (n==4) { printf(“%d\r\n”,(3 % q));  }      if (n==5) { printf(“%d\r\n”,(8 % q));  }      if (n==6) { printf(“%d\r\n”,(20 % q)); }      if (n>6) { printf(“%d\r\n”,5); }      fclose(stdin);      fclose(stdout);      return 0;  } 

/* <br/> Cheat By Ceeji XD<br/>*/<br/>#include <cstdio><br/>using namespace std;<br/>int n,q;<br/>int main()<br/>{<br/> freopen(“count.in”,”r”,stdin);<br/> freopen(“count.out”,”w”,stdout);<br/><br/> scanf(“%d”,&n);<br/> scanf(“%d”,&q);<br/><br/> if (n==1) { printf(“%d\r\n”,(1 % q)); }<br/> [...]

第 1 頁,共 3 頁123