日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++学习笔记系列一

發布時間:2025/3/15 c/c++ 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++学习笔记系列一 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、<< ?在c語言里面是左移,在c++里面是一個函數,利用函數重載。例如, ? ? ? cout就是一個對象。故它可以調用 << 這個函數。
  • 定義在名稱空間中的變量或者函數都稱為實體
  • ?:: ?是作用域限定符 ( std:: cout <<"hello , world ")
  • 在命名空間之后,可以加上提示語句,//end of namespace A;
  • 對于命名空間,除了::,外還可以使用using ?命名機制,盡可能將其范圍縮小。
  • using 編譯指令,(using namespace std ; 實體全部引進)建議不要使用,但可以用using申明機制(using std:: out;) ?(推薦使用)
  • 對于全局變量,是位于匿名的命名空間,可以用直接加上雙冒號 ?<< ?: ?: ?num; ? 就可以了,
  • 對于C頭文件里面的所用實體都認為是放在匿名的命名空間里面的
2、名稱空間的定義策略
  • 可以把命名空間看成一個容器,
  • 名稱空間中函數的定義和實現可以分開進行
  • 函數原型可以多次聲明
  • 匿名的命名空間 ? eg: ?( : :memcpy )
3、const關鍵字
  • 常量的值是不能被修改的
  • const 常量必須要初始化
  • 預處理僅僅是一個打開頭文件,進行一個字符串替換,它是不涉及類型檢查的。有可能將錯誤發生的時機延后到運行時,但,如果使用const關鍵字,它發生的時機是編譯時,是具有類型檢查的功能。可以盡量使用const關鍵字,替換宏定義。const常量必須進行初始化。
  • 對于const常量指針,當用const修飾指針時,(const在* 左邊時,eg: ?const int * pb),我們是不可以使用指針解引用改變該指針指向內容的值,但是可以修改該指針的指向的。相當于左邊加上const后,是保護指針指向的內容的額,叫常量指針。 ? (經常用)
  • 對于const 如果在* 的右邊,是如 int ?* ?const p;時,此時我們可以改變它指向內容的,但是不可以修改它的指向的,相當于,定義了一個p 的指針常量(經常用),如果不清楚,可以參見prime,以C++ prime為準。從右邊向左閱讀。
  • 類似的概念還有,指針數組 (eg: int * p[10])和 數組指針int (*p)[10],指針函數( int *p( ) )返回指針的函數和函數指針int (*p)() ?。
  • c++的申請堆空間,( ?eg: int* p= new int(1) ?),可使用delete 釋放空間。首先new/ delete是表達式,其次開辟空間時,是可以進行初始化的,成對使用。申請10個對象時,int *p=new int [10] ( ) ?,它是可以識別類型的。這樣可以把數組初始化為0,,釋放時,delete ?[ ?] p;都需要加上中括號。
  • 對于c語言的malloc ?/ free 是c的標準庫函數,開辟空間時,是不能初始化的,但可以賦值,給指向,也是必須的。不然就是野指針。成對使用。
4、引用 ?&
  • 引用是一個變量的別名,有一點和指針很像,因為引用要綁定在一個變量上去的,故必須進行初始化,綁定,一旦綁定就不會再改變指向。(eg: ?int ?& ref =a)類似于一個指針常量,不能改變指向。
  • 操作引用的時候,就是操作變量本身。經典例子,Swap交換函數,法一,傳地址,交換值,法二,傳引用,,
  • 非const左值引用不能綁定到右值--->只有const左值引用才能綁定到右值,eg: const ?int & ref =10;-->可以。int & ref =10;不行,左值是左邊可以加運算符的eg: ?&a,,
  • swap(int ?& refa,int ?&refb)-------swap(a,b) ?在參數傳遞時,可以節省復制的開銷,不用另外開辟空間,提高程序的執行效率,使用更直觀。
5、指針與引用的差別:
  • 指針是一個獨立的實體,而引用是一個別名
  • 指針是不需要進行初始化,但引用必須要進行初始化。
  • 指針是可以改變指向的,引用不能。
  • 指針可以指向NULL,但引用不能。
  • 引用作為函數的參數,操作的就是實參本身。
引用的注意情況:
  • 引用作為函數的返回值。首先要保證綁定引用的變量的生命周期一定要大于函數的。例如:在函數棧里面的一個局部變量被引用返回時,局部變量就會被銷毀。故注意 不要返回一個局部變量。? ??
  • 2、 ?返回一個堆空間的一個引用,return ?// ?若引用發生偏移,則會 發生內存泄露,所以,不要將已返回一個堆空間變量的引用的, 除非已經做好了內存回收的策略的。 6、類型強制轉換
    • c語言中,例如,double ?b; ? int ?a=(int ) b;
    • c++中強制轉換的運算符,關鍵字,,
    • int ?a,= static_cast<int>(b);
    • 還有const_cast ?/ dynamic_cast ?/ ?reinterpret_cast(暴力轉換)
    7、c語言不支持函數重載的,但也可以實現,比較麻煩。
    • c++支持函數重載,其實現的原理當函數名稱相同時,是名字改編那么( name mangling),其步驟是,當函數名稱相同時,會根據函數的參數的類型,個數,以及順序的不同進行改編。可先生成 .o文件,再用nm命令查看 ?.o 文件。
    • 當我們需要函數名以c語言的方式去調用,名字不進行名字改編可以采用關鍵字 ? extern ?"C"{ ? 里面為語句? }? ? ??//end of extern "C" ?,這樣就不會進行名字改編。 ?這樣就可以使用C 的方式。
    ? ? ? ? #ifdef ?__cplusplus ? ? ? ? ?extern ?"C" ? ? ? ? ? { ? ? ? ? ? #endif ? ? ? ?? #ifdef ?__cplusplus ? ? ? ? ?extern ?"C" ? ? ? ? ? { ? ? ? ? ? #endif ?? //這樣就可以實現c與c++的混合編程,或者說C++兼容C的代碼。 ? ? ?之所以要這樣,是應為C不支持,函數重載。 8、C++是支持函數形參為他一個默認值的(或者缺省值) ? int add(int ?x,int y=0) ? ? ? ? ? ?? ?????調用add(3) ? ? ?//默認--缺省值的設置,只能從右到左的順序,此 ?????外,在函數設置默認傳參時,要盡量避免二義性。 ?默認值的問題 9、C++里面提供了一個bool類型 ? ? ? ? ? bool大小是一個字節。 10、當有一個簡單的函數,直接替換時,c語言可以使用帶參數的宏 定義,C++中可以加上 ?inline ?關鍵字之后,在函數真正調用 時,會直接將函數體的內容直接替換,從而提高函數的執行效 率。?(內聯函數) ?--- >功能等價C語言的帶參數的宏定義。 11、C語言與C++中的字符串
    • c語言在處理字符串時,需要考慮空間大小,避免越界。
    • C++的字符串處理就比較方便,#include<string> ?也在std的命名空間里面。std::string s1="hello"; std::string s2(",world");
    • 遍歷字符串的內容,string類也可以直接訪問, s.size() ?或s.length ( ) ?字符串長度。其中也可以直接用下標訪問法去訪問。
    • 截取字符串 ?s. substr(初始位置,截幾個) ?返回值即為截取的字符串。默認情況下是從0 開始的,
    • 將C++風格的字符串轉換成c風格的字符串,,,const char *p= s.c_str( ) ;常用 ?或者 ?S.data( )方法也可以完成這樣的工作。
    • “hello” ?的類型就是const ?char ?* 的類型。故這就是反轉換成C++的string ?的類。(常用 ) ? ?

    總結

    以上是生活随笔為你收集整理的C++学习笔记系列一的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: wwwwww色| 天天操天天插天天射 | babes性欧美69 | 丁香五香天堂 | 97高清国语自产拍 | 丁香六月五月婷婷 | 在线免费福利 | 一本到视频 | 亚洲免费影院 | 国产女同视频 | 成年人黄色大全 | 天天爽天天色 | 国产一级大片在线观看 | 日本一区电影 | 91精品人妻一区二区三区蜜桃2 | 一级欧美一级日韩 | 在线免费a视频 | 超碰最新网址 | 亚洲毛片一区 | 波多野结衣中文一区 | 精品久久久在线观看 | 一区在线观看 | 狠狠插狠狠操 | www婷婷 | 日韩精品一线二线三线 | 国产精品999在线观看 | 人人澡人人看 | 青草久久网 | 欧美日韩国产专区 | 日本福利在线观看 | 女人天堂av | 污视频网站在线观看 | 777精品视频| 亚洲精品国偷拍自产在线观看蜜桃 | 好色艳妇小说 | 黄色大片网址 | www.天天操| 黄网页在线观看 | 久久99久久99精品免观看粉嫩 | 国产福利91精品一区二区三区 | 60分钟| 欧美一级片免费看 | 国产一二在线 | 国产香蕉视频在线播放 | 国产激情无套内精对白视频 | 91午夜视频 | 卡通动漫精品一区二区三区 | 亚洲 欧美 日韩 综合 | 婷婷四月| 国产成人在线观看免费 | 国内精品久久久久久 | 久久免费视频1 | 欧美一区成人 | 国产精品99久久久久久www | 久久国产激情 | 在线免费看黄视频 | 粉嫩久久99精品久久久久久夜 | 国产高潮av | 成人午夜在线观看 | 国产日韩精品视频 | 亚洲 小说 欧美 激情 另类 | 免费se99se | 成人欧美一区二区三区白人 | 91色在线视频 | 亚洲国产丝袜 | 中文字幕久久精品 | 九九九九精品 | 麻豆免费看片 | 天天干夜夜玩 | 精品日本一区二区三区 | 狠狠艹视频 | 日日网站 | 羞羞羞网站 | 国产亚洲性欧美日韩在线观看软件 | 亚州色图欧美色图| 一区二区三区在线观看视频 | 深夜视频在线 | 99视频只有精品 | 免费在线成人av | 麻豆三级 | 壮汉被书生c到合不拢腿 | a v在线视频 | 国产又大又长又粗 | 极品美女啪啪 | 青草视频在线播放 | 日本少妇影院 | 精品人妻无码一区二区三区换脸 | 成人黄色一级 | 人人妻人人做人人爽 | 国产丝袜美腿一区二区三区 | 国产精品久久免费视频 | 91网站视频在线观看 | 中文字幕第15页 | 在线观看av一区 | 国产精品无码内射 | 国产大学生自拍视频 | 亚洲色成人网站www永久四虎 | 免费激情| 亚洲欧美视频一区二区 |