定義:資料型別 陣列名[元素個數] ;
int a[100] ; //從 a[0] - a[99] 都是int型資料
初始化:資料型別 陣列名[元素個數] = ;
int a[5] = ;
資料型別 陣列名 = ;
int a = ;
輸入: 15 13 11 8 26
輸出: 26 8 11 13 15
輸入時每個數中間用空格隔開。
#include
using
std::cin;
using
std::cout;
int main()
for( i = 4; i >=0; i-- )
return
0;}
定義:資料型別 陣列名[常量表示式1][常量表示式2] ;
int a[3][5] ;
初始化:資料型別 陣列名[常量表示式1][常量表示式2] = ;
int a[2][3] = , } ;
int a[2][3] = ;
int a[3] = ;
//將陣列arr反轉輸出
#include
using
std::cin;
using
std::cout;
using
std::endl;
int main()
, ,
,} ;
int m, n ; //迴圈控制
int temp ; //臨時變數, 用於交換資料
//開始進行矩陣轉置
for( m = 0; m < 4; m++ )
for( n = m+1; n < 4; n++ )
//輸出轉置後的狀態
for( m = 0; m < 4; m++ )
cout
/每輸出一行後進行換行
}return
0;}
問:c++中定義字元型陣列時』\0』是不是也佔一位?是不是定義char a[5],只能有4個字元?那計算字元長度時又否忽略』\0』?
答:
c++中定義字元型陣列時』\0』是不是也佔一位?是不是定義char a[5],只能有4個字元,(是的,如果你把這個字元陣列看成乙個字串的話,這裡應該是最多4個字元,)那計算字元長度時又否忽略』\0』? (是的)
解釋:
定義char a[5],則說明,a是個字元陣列,在記憶體中佔五個位元組空間
如果用a來儲存字串,則最多只能有4個有效字元,必須給\0留個空間。
計算a的長度與a的大小是不同的概念
a按字串來算長度是從a這個位址開始,計數到\0字元,這之間的字元個數是字串a的長度。
一般常用strlen()函式來獲取字串長度。
計算a的大小用sizeof命令,sizeof(a)得到的是a在記憶體中佔的位元組數!
字串與字元陣列不要混為一談。它們相同在形式上,區別就在,字串一定有\0結束符,而陣列不需要!
什麼是字串?就是以雙引號引起來的資料才叫字串。字元陣列可以儲存字串!
1、利用cin輸入字串
cin使用空白(空格、製表符、換行符(通過回車符輸入))來確定字串的結束位置,這意味著通過cin讀入字元陣列時只讀取乙個單詞,空白仍保留在流中,讀取該單詞後,cin將該字串放在陣列中,並自動在結尾加入空字元(『\0』);流中單詞之前的空白將被忽視,而直接儲存單詞;單詞之後的空格仍儲存在流中!
2、使用行讀取函式getline()
getline(cin,str,'q');
//getline(istream & is,string & str,char delim);將輸入流is中讀取到的字元存入str中,直到遇到delim才結束
getline(cin,str);
//getline(istream & is,string & str);將輸入流is中讀取到的字元存入str中,直到遇到空格『\n'才結束
cin.getline(chr,50,'q');
cin.getline(chr,20);
//getline(char*s,streamsize n,char delim);類成員函式,將輸入流中讀到的字元存入s中,最多讀取n-1個字元,如果輸入字元出現了終結符delim,還沒有到n-1個字元,也會提前結束;遇到終結符delim後delim會被拋棄,不存入s在下次操作時,在delim的下乙個字元開始讀取
3、使用get()函式讀取
#單字元讀取函式
cin.get();
#int get()從輸入流中讀取單個字元,把讀取到的單字元以函式值的形式返回
cin.get(char[0]);
#get(char&c)從輸入流讀取單個字元儲存到c中
#c字串讀取
cin.get(chr,20);
#get(char*s,streamsize n)從輸入流讀取n-1個字元存放到s中,會自動新增\n做結束標誌
cin.get(chr,50,'q');
#get(char*s,streamsize n,char delim)將輸入流中讀到的字元存入s中,最多讀取n-1個字元,如果輸入字元出現了終結符delim,還沒有到n-1個字元,也會提前結束;最後會在字串後面新增\n
1、標準輸出流cout:依次輸出字串的每個字元,直到遇到字串結束符\0,輸出完字串後不會自動換行2、printf()函式:依次輸出字串的每個字元,直到遇到字串結束符\0,輸出完字串後不會自動換行3、puts()函式:將乙個字串(以\0結束的字串)輸出到終端。在輸出時,將結束符\0轉換為\n,即輸出完字串後自動換行宣告、定義、呼叫
#include
#include
using
std::cin;
using
std::cout;
using
std::endl;
//函式宣告
int max_value(int a,int b);
int main()
//函式定義
int max_value(int a,int b)
宣告:struct 結構體名 ;
定義:struct 結構體名 結構體變數
共用體(union)是一種資料格式,它能夠儲存不同型別的資料。同乙個記憶體段可以用來存放幾種不同型別的成員,但是在每一瞬間只能存放其中的一種,而不是同時存放幾種。換句話說,每一瞬間只有乙個成員起作用,其他的成員不起作用,即不是同時都在存在和起作用。
共用體變數的位址和它的各成員的位址都是同一位址。
enum
week days;
//變數days的型別為列舉型enum week
(1) 列舉型是乙個集合,集合中的元素(列舉成員)是一些命名的整型常量,元素之間用逗號,隔開。
(2)week是乙個識別符號,可以看成這個集合的名字,是乙個可選項,即是可有可無的項。
(3) 第乙個列舉成員的預設值為整型的0,後續列舉成員的值在前乙個成員上加1。
(4) 可以人為設定列舉成員的值,從而自定義某個範圍內的整數。
(5) 型別定義以分號;結束。
自定義陣列類
在學習c 的過程中,我們經常使用到陣列,那怎麼去定義乙個類去實現陣列的功能呢?我們先列出一些經常對陣列進行的一些操作,1 建立乙個指定容量的陣列 2 用已有的陣列初始化另乙個陣列 3 用已有的陣列給另乙個陣列賦值 4 給陣列新增元素 給陣列元素賦值 5 獲取陣列指定元素的值 6 輸入一定數量的值,將...
自定義陣列類 DS筆記2
獲取陣列中的元素 public int getsize 獲取陣列的容量 public int getcapacity public boolean isempty 向所有元素後新增乙個新元素 public void addlast e elem 在所有元素前新增乙個元素 public void ad...
C 基礎學習筆記 自定義陣列模板類
內容 陣列模板類 修改 2017年9月13上午 成員方法中delete未正確匹配 改進 2017年9月13晚上 陣列總量改為固定 define crtdbg map alloc include include include arraytemplate.h include arr.h include...