1、typedef為乙個已有型別取乙個新的名字。
2、c++中的識別符號:用來標識變數、函式、類、模組或任何其他使用者自定義專案的名稱。
3、區域性變數:在函式或者**塊內部定義的變數(在函式內區域性變數會覆蓋全域性變數的值)
全域性變數:在所有函式外部宣告的變數
形式引數:在定義函式名和函式體的時候使用的引數,用來接收呼叫該函式時傳遞的引數,也就是實參。只在呼叫的時候才分配記憶體單元,呼叫結束後釋放空間,只在函式內部有效
實際引數:呼叫某函式時要傳遞給某函式的引數。
4、定義常量兩種方法::#define(在函式頭之後函式體之前)和const
5、儲存類:
auto:宣告變數時根據初始化表示式自動推斷該變數的型別、宣告函式時函式返回值的佔位符。
register:用於定義儲存在暫存器中而不是 ram 中的區域性變數。
static:指示編譯器在程式的生命週期內保持區域性變數的存在,而不需要在每次它進入和離開作用域時進行建立和銷毀。因此,使用 static 修飾區域性變數可以在函式呼叫之間保持區域性變數的值。
extern:
6、函式宣告中引數的名稱不重要,但是一定要有引數的型別
7、lambda函式:對匿名函式的支援
8、傳遞陣列的三種方式:
現在初始化乙個陣列,例int a[3] =
b = myfunction(a)
void myfunction(int *param)
void myfunction(int param[10])
void myfunction(int param)
9、指標陣列
#include
using namespace std;
const int max = 4;
int main ()
;for (int i = 0; i < max; i++)
return 0; }
這個很好理解,我們來將問題拆分一下,首先是定義個字串:
char *name = "
zara ali";
那麼定義完成之後*name
得到的就應該是z
,因為z儲存的是字串的首位址,它的型別是指向字元的指標,表示式*name
拿到的正是這個位址中儲存的字元z
。
然後是定義字串陣列:
char *name = ;
name
中儲存的其實是一堆指標,這一堆指標組成了乙個陣列,其中name[0]
這個指標正是第乙個字串的首位址,然後*(name[0])
又回到第乙個問題中了
在c++中,*的優先順序小於
10、引用——某個已存變數的別名
引用很容易與指標混淆,它們之間有三個主要的不同:
關於c++中使用引用的原因:
主要在於形參實參傳遞值這塊。
形參實參都是變數名的時候,形參的改變不會改變實參的值u,換句話說是單向,而如果形參是指標或者引用,當是指標時,指標指向實參的首位址,會進而改變實參的值,而引用的位址和實參位址相同,所以也會改變實參的值,這樣就是雙向傳遞。
(1)將變數名作為實參和形參。這時傳給形參的是變數的值,傳遞是單向的。如果在執行函式期間形參的值發生變化,並不傳回給實參。因為在呼叫函式時,形參和實參不是同乙個儲存單元。// 同 c
(2) 傳遞變數的指標。形參是指標變數,實參是乙個變數的位址,呼叫函式時,形參(指標變數)指向實參變數單元。這種通過形參指標可以改變實參的值。// 同 c
(3) c++提供了 傳遞變數的引用。形參是引用變數,和實參是乙個變數,呼叫函式時,形參(引用變數)指向實參變數單元。這種通過形參引用可以改變實參的值。
11、定義類成員函式兩種方式:
(1)class a (2) int a::b(void)
int b(void) }
使用第二種方法時,應該先在類中宣告類函式,在寫該函式時前邊應該是返回值的型別
12、什麼是建構函式?
類中的一種特殊成員函式,命名和類名相同,宣告時直接就是:類名()
定義時:類名::類名()
如果建構函式無引數,那麼在主函式例項化物件的時候就直接例項化就行,但是如果有引數的話就得這樣:line line(10)
13、什麼是析構函式?
刪除所建立物件時執行,函式名與類名相同,前邊有個~
14、什麼是拷貝建構函式?
如果類帶有指標變數,並有動態記憶體分配,則它必須有乙個拷貝建構函式。
line( const line &obj); //類名(const 類名 &obj)
15、this指標:
每乙個物件都可以通過this指標訪問自己的位址,友元函式沒有this指標,只有類的成員函式才有this指標
this指標在成員函式開始前構造,成員函式結束後清除;
16、c++類的靜態成員在類中宣告static int objectcount;但是不能再類中初始化,在類的外邊初始化的時候int box::objectcount = 0;(其中objectcount為靜態成員)
靜態函式只要使用類名家範圍解析運算子::就可以訪問;靜態成員函式只能訪問靜態成員資料、其他靜態成員函式和類外部的其他函式。
靜態成員函式與普通成員函式的區別:
17、繼承
依據乙個類定義乙個類,代表is a關係。優點:建立和維護乙個應用程式變得更容易。達到了重用**功能和提高執行時間的效果。
格式:class rectangle: public shape
乙個派生類繼承了所有的基類方法,但下列情況除外:
18、函式過載:在同乙個作用域內,可以宣告幾個功能類似的同名函式,但是這些同名函式的形式引數(指引數的個數、型別或者順序)必須不同。
****運算子過載:
19、c++介面:
c++ 介面是使用抽象類來實現的,抽象類與資料抽象互不混淆,資料抽象是乙個把實現細節與相關的資料分離開的概念。
如果類中至少有乙個函式被宣告為純虛函式,則這個類就是抽象類。
// 純虛函式 virtual double getvolume() = 0;
C 學習筆記( )
一 語法 迴圈 foreach 型別識別符號 in 表示式 code 用法 例子int temp foreach int num in temp 每次從temp取乙個元素賦給num直至取完 console.writeline n num 每行顯示乙個元素 執行結果 c 中唯讀 只寫控制 class ...
C 學習筆記
1.函式特徵 有函式頭和函式體 接受乙個引數 返回乙個值 需要乙個原型。2.c 命名規則 在名稱中只能使用字母字元 數字和下劃線 名稱的第乙個字元不能是數字 區分大寫字母和小寫字母 不能將c 關鍵字用作名稱 以兩個下劃線或下劃線和大寫字母打頭的名稱被保留給實現 編譯器及其使用的資源 使用,以乙個下劃...
c 學習筆記
屬性 屬性開頭字母大寫 屬性可以判斷輸入的非法值 屬性本身不儲存值 依靠字段 索引器 using system using system.collections.generic using system.linq using system.text namespace b try catch exc...