日積月累,日新月異
本篇主要介紹c++中有關數組和字符串相關知識。
數組聲明(與java的一致)
type arrayName[size];
數組數據的獲取和java相同使用 arrayName[對應下標,從0開始],同樣的編譯器無法告知你是否超出數組的範圍,java中超出範圍會拋出index of exception 數組越界異常,c++則不一定,c++中屬於按地址取值,如果對應位置有數據則顯示數據,反之則可能報錯。
c+中允許以下聲明
int a[3];
java中不允許,因爲此時未給其申請內存,屬於不可用。 c++中此時可以通過 a[0]~a[2] 進行賦值,如果進行初始化操作也是不允許的。比如:int a[3]; a[3]={1,2,3}
;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;
聲明字符串可以採用
char fish[]=" ddff";
字符串的存儲上最後一位是空字符,用於標識字符串結束使用string的時候需要導入同文件
cstring或者string.h
(c語言風格)strlen 計算可見字符的長度 sizeof(arrayName) 數組的長度,字符串輸出到出現空字符的時候停止,即使此時有其他的字符
要使用string類的時候必須包含頭文件string 注意是小寫,還需要使用命名空間
using namespace std; //(c++風格)
c++字符串的聲明是小寫的string,java中是大寫,而且c++中字符串可以當做數組處理
例子:string str1="test"; cout<<str1[0]; //結果爲t
不能將數組賦值給另一個數組但是可以將string對象賦值給另一個string對象
string簡化了字符串合併操作,可使用+或者+=等同於java中的用法
對於c語言風格如果想copy字符串可以使用
strcpy(char1,char2); //copy char2 to char1 strcat(char1,char2);//append char2 to char1