C++學習一

來源:互聯網
上載者:User

標籤:

  相對於基礎開始比較薄弱,比較坑的是VC裡面直接#include<iostream.h>到VS裡面需要換成#include<iostream> using namespace std;VS2010以後的都刪除了所有非標準庫,保留了C++標準庫,iostream.h是以前舊版的庫,VS2010之後的支援新版的標準iostream;VS2013沒有專門給C程式的,可以選C++,然後建立新項目,並把項目的尾碼從.cpp改為.c,即可開始編寫.

  今天做了個關於數組的ppt,在做ppt的過程中發現自己多年不碰的C++變的很生疏,特別是對於strcmp函數,猛地以為就是比較兩個字串的大小,以為是長度大小,後來寫了個程式試了下不是我理所當然的,而是比較字串的大小,與長度無關。 

  strcmp函數比較結果是這樣規定的:  

  ①字串1小於字串2,strcmp函數返回一個負值;

  ②字串1等於字串2,strcmp函數返回零;

  ③字串1大於字串2,strcmp函數返回一個正值;

  初看定義以為理所當然的一個一個字串,後來發現實際上,字串的比較是比較字串中各對字元的ASCII碼。首先比較兩個串的第一個字元,若不相等,則停止比較並得出大於或小於的結果;如果相等就接著 比較第二個字元然後第三個字元等等。如果兩上字串前面的字元一直相等,像"disk"和"disks"   那樣,   前四個字元都一樣,   然後比較第 五個字元,   前一個字串"disk"只剩下結束符‘/0‘,後一個字串"disks"剩下‘s‘,‘/0‘的ASCII碼小於‘s‘的ASCII 碼,所以得出了結果。因此無論兩個字串是什麼樣,strcmp函數最多比較到其中一個字串遇到結束符‘/0‘為止,就能得出結果。

特別注意:字串是數群組類型而非簡單類型,不能用關係運算進行大小比較。  

         if("ABC">"DEF")   /*錯誤的字串比較*/

         if(strcmp("ABC","DEF")   /*正確的字串比較*/

  當涉及到二維數組的時候,我們有時候會將二維數組作為一個函數的參數,如果二維數組的行列不確定時,會出現編譯錯誤,比如int maximun(int grade[][],int pupils,int tests) 就會出現error C2087:’<Unknown>‘:missing subscript.出現這個問題是因為我們如果想把二維數組作為函數的參數,那麼二維數組的列值至少是確定的。正確的寫法應該是int maximun(int grade[][4],int pupils,int tests);

  如果想用指標來表示int maximun(int **grade,int pupils,int tests),此時不可以把一個定義為int sag[3][4]的數組直接傳過去,使用這個函數編譯則會出現error C2664: ‘maximun‘ : cannot convert parameter 1 from ‘int [3][4]‘ to ‘int ** ‘ 出現這個問題可以修改為int maximun(int (*grade)[4],int pupils,int tests)

C++學習一

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.