C 個人筆記(陣列 函式 自定義資料型別)

2021-08-18 04:09:03 字數 4170 閱讀 7662

定義:資料型別 陣列名[元素個數] ;

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...