字串的輸入
cin(不存在吃掉前乙個回車的情況)
cin使用空格、製表符和換行符來確定字串的結束位置。
會出現以下問題
遇到空格終止輸入,不能得到完整的一行
#include
using
namespace std;
const
int maxn =20;
intmain()
in put:
li william
out put:
li
get()與getline()
兩個函式都讀取一行,直到遇到換行符結束。
呼叫方法
cin.get(arrayname,arraysize);
cin.getline(arrayname,arraysize);
cin.getline(arrayname1,arraysize2).getline(arrayname1,arraysize2);
cin.get(arrayname1,arraysize2).get().get(arrayname1,arraysize2);
區別getline()丟棄換行符,get()則保留
比如cin.get(name1,size1).get(name2,size2)只會出現第一次呼叫的結果,第二次呼叫時看到的是第一次呼叫保留的換行。cin.getline(name1,size1).getline(name2,size2)兩次呼叫都能正常進行。
會出現以下問題
#include
using
namespace std;
const
int maxn =20;
intmain()
輸入乙個數字後程式直接結束
引用與指標的聯絡
引用對指標進行了簡單封裝,底層仍然是指標。
int num =
108;
int& rel_num = num;
rel_num =
118;
cout <<
&num <<
'\t'
<<
&rel_num << endl;
/* *與該引用等價的指標
*//*int* rel_num = #
*rel_num = 118;
cout << &num << '\t' << rel_num << endl;*/
常量指標:const int *p = &a;
指標的指向可以修改,
指標指向的值不可以修改。
指標常量:int * const p = &a;
指標的指向不能改,
指標指向的值可以改。
const既修飾指標,又修飾常量:指標的指向和指標指向的值都不能改。
new與delete
注意以下幾點
用new來分配記憶體的通用格式:
typename * pointer_name = new typename
一定要配對的使用new與delete,附則會發生記憶體洩漏。
不要用使用delete來釋放不是new分配的記憶體
不要使用delete釋放偶同一塊記憶體兩次
如果使用new[ ]為陣列分配記憶體,則應使用delete[ ]釋放
int* pter = new int[3];
pter[0] = 1;
pter[1] = 2;
pter[2] = 3;
for (int i = 0; i < 3; i++)
delete pter;
如果使用new[ ]為乙個實體分配記憶體,則應使用delete[ ]釋放
int* pter_a = new int;
delete pter_a;
對空指標應用delete是安全的
使用new來創立動態結構
注意:如果結構識別符號是結構名,則使用句點運算子;如果識別符號是指向結構的指標,則使用箭頭運算子。pter->name = (*pter).name
#include
#include
using
namespace std;
const
int maxn =20;
struct node
;int
main()
學習筆記雜記
命令 具體操作 ls顯示檔案或目錄 l列出檔案詳細資訊l list a列出當前目錄下所有檔案及目錄,包括隱藏的a all mkdir 建立目錄 p建立目錄,若無父目錄,則建立p parent cd切換目錄 touch 建立空檔案 echo 建立帶有內容的檔案。cat檢視檔案內容 cp拷貝 mv動或重...
c 學習雜記
概念 物件 object 類 class 物件導向 由類組成 是以介面形式存在 易於移植 可以將每乙個變數都看作是物件 每一種資料型別都可以看做是類 類中分為 public protected private 公有 保護 私有 變數 公有變數 任何人都可以訪問 保護變數 自己與自己派生 繼承的都可以...
php學習筆記 雜記
substr replace 擷取文本來建立乙個概要 article breaking news in ultimate irony,man bites dog.summary substr replace article,40 summary breaking news in ultimate i...