第四章總結:
1、不能將乙個陣列賦值給另乙個陣列
2、string是以\0結尾的,char如果沒有特別賦值時,是沒有的,只能是字元陣列,不是字串。
3、通過cin輸入的字元中,用空字元(空格、回車、製表符等)來結尾。
4、new分配的記憶體一般存在堆(heap)或者自由儲存區中,變數宣告的記憶體一般存在棧(stack)中.
5、c++管理記憶體的方式:自動儲存,靜態儲存,動態儲存。
(1)自動儲存:區域性變數,放在棧中,先進後出。
(2)靜態儲存:static 或者寫在函式外。
(3)動態儲存:new出來的都是,放在堆中。
test.h檔案
#ifndef _test_h_
#define _test_h_
#include
using namespace std;
class test
;#endif
test.cpp檔案
#include "test.h"
#include
using
namespace
std;
test::test(char c)
test::~test()
test * test::gettest()
main.cpp
#include
#include "test.h"
using
namespace
std;
static test test('a');
int main()
執行結果:
因為a是靜態變數,所以程式啟動的時候先建立了a,然後才進入main函式。
在gettest函式內先建立了b,然後new了乙個c。b是宣告出來的,所以函式結束之後,就會刪除掉,而c是new出來的,放在堆中。
走完main函式,在外面才刪除了a。靜態變數是在關閉程式的時候才**的。
而c,c的析構函式沒有走到。證明在堆中的記憶體,程式是不會**的.
6、vector初始化化可以用{}直接包含一些元素進去。
7、把字串指標強制轉換為整型指標,cout輸出的就是字串的位址。
8、cin輸入的問題:不能讀整行,可以用cin.getline(buffer,size);來讀取。
在連續使用cin的時候,cin.get()可以用來吃掉cin輸入最後的回車\n;
第五章總結
1.要輸出bool,要設定標記,預設是輸出0和1的。
cout.setf(ios_base::boolalpha);
cout << true << endl;
2、c++11支援在for(int i = 0; i < len; i++)直接定義迴圈變數,同時出了迴圈i的作用域失效。
3、cin>>ch,跳過空格、換行符、製表符。cin.get(ch) 和 ch = cin.get()可以讀取這些字元
4、部分總結與c語言部分重複較多就不一一列出了。
第六章總結:
1、下面是c++primer書上一些字元庫函式,程式設計的時候還是很方便的。
字元函式庫標頭檔案
isalnum() 字母或數字
isalpha() 字母
iscntr() 控制字元
isdigit() 數字(0 - 9 )
isgraph() 空格之外的列印字元
islower() 小寫字母
isprint() 列印字元,包括空格
ispunct() 標點符號
isspace() 標準空白字元,如空格,進紙,回車,水平製表符,垂直製表符
isupper() 大寫字母
isxdigit() 十六進製制字元
tolower() 如果是大寫,轉小寫
toupper() 如果是小寫,轉寫
2、第六章的講的東西跟c語言重複很多,因此不再此一一列出。
《C Primer》讀書筆記(2)
1.const關鍵字 當我們定義一種變數,不希望改變其值的時候,使用const關鍵字來修飾。即常量。使用的時候一定要注意,定義乙個常量的時候一定要初始化,且只能在初始化的時候賦值,之後不能進行修改。2.const引用 這個地方經常糾結,這次一定要搞懂。常量引用不是引用是個常量,而是引用的物件是個常量...
《c primer》讀書筆記2
筆記的範圍 1.2節 在1.1 節中,作者提出乙個問題並用分而治之和獨步求精的思想給出了解決方案,我在這裡再重複一遍。在學習乙個新東西之前。該從它的思想入手,我的建議是 在讀完第二篇之前最好不要動手上機,這樣做的好處是你可以避免很多莫名其妙的笨問題。關於這點,我會在以後的筆記中試圖證明。在本節中,作...
C primer 讀書筆記
第2 章 變數和基本型別 1 變數直接初始化和變數 複製初始化 int ival 1024 direct initialization int ival 1024 copy initialization 初始化不是賦值 2 內建型別復 制初始化和直接初始化幾乎沒有區別 但 對類型別物件來 說,有些初...