三、複合類型

日積月累,日新月異

本篇主要介紹c++中有關數組和字符串相關知識。

  1. 數組聲明(與java的一致)type arrayName[size];

  2. 數組數據的獲取和java相同使用 arrayName[對應下標,從0開始],同樣的編譯器無法告知你是否超出數組的範圍,java中超出範圍會拋出index of exception 數組越界異常,c++則不一定,c++中屬於按地址取值,如果對應位置有數據則顯示數據,反之則可能報錯。

  3. c+中允許以下聲明int a[3]; java中不允許,因爲此時未給其申請內存,屬於不可用。 c++中此時可以通過 a[0]~a[2] 進行賦值,如果進行初始化操作也是不允許的。比如: int a[3]; a[3]={1,2,3}

  4. c++ 中數組初始化規則:只有在定義數組的時候纔可以使用初始化,此後不允許使用,也不能將數組賦值給另一個數組。(c++中對於地址有專門的描述方式比如指針,有關地址的處理上就可能不一樣)

    int a[4]={3,6,8,9};   //c++ 允許,java不允許
    int a[]={3,6,7,8};   // c++ 允許 java 允許
    int a[4];           //c++ 允許 java不允許
    a[4]={1,2,3,4};     //c++和java都不允許 
    int a[]={3,6,7,8}; 
    int b[];  b=a;      // c++不允許 java允許

    數組的操作在java 中和對象的是一致的,” = ” 是將引用copy, b=a 相當於b,a指向同一個數組或者對象。C++中對象的操作類似java,原理還帶深入,不過表現是一致的,但是數組操作是不一樣的。數組地址採用的是常量指針,所以不允許重新賦值,換言之如果採用的不是常量指針就是可以的,究竟處於什麼考慮這樣設置,還需深究

    舉例,c++ 對象行爲是允許的

    A a,b;
    a=new A();
    b=a;
  5. 聲明字符串可以採用 char fish[]=" ddff";字符串的存儲上最後一位是空字符,用於標識字符串結束

  6. 使用string的時候需要導入同文件 cstring或者string.h(c語言風格)

  7. strlen 計算可見字符的長度 sizeof(arrayName) 數組的長度,字符串輸出到出現空字符的時候停止,即使此時有其他的字符

  8. 要使用string類的時候必須包含頭文件string 注意是小寫,還需要使用命名空間

    using namespace std; //(c++風格)
  9. c++字符串的聲明是小寫的string,java中是大寫,而且c++中字符串可以當做數組處理
    例子:

    string str1="test";
    cout<<str1[0];   //結果爲t
  10. 不能將數組賦值給另一個數組但是可以將string對象賦值給另一個string對象

  11. string簡化了字符串合併操作,可使用+或者+=等同於java中的用法

  12. 對於c語言風格如果想copy字符串可以使用

    strcpy(char1,char2); //copy char2 to char1
    strcat(char1,char2);//append char2 to char1

相關資料:彙總地址


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章