-
當const已經修飾一變量時,再去用指針去指這個變量會很危險,因為指針可以改去該變量的值,與const就有沖突的風險
查看全部 -
內聯函數關鍵字:inline
內聯函數是建議性的,由編譯器決定。
邏輯簡單,調用頻繁的函數建議使用內聯。
遞歸函數無法使用內聯。
查看全部 -
總結如下:
查看全部 -
C++中new的初始化,int *p = new int(20);
查看全部 -
C++的內存管理,
內存的本質就是資源;操作系統掌控內存的資源,我們能對內存資源進行申請和歸還。
申請和釋放內存,分別使用new、delete,兩者均屬于運算符而不是函數。
申請內存 int*p = new int;
釋放內存 delete p;
申請塊內存 int* arr = new int [10];
釋放塊內存 delete []arr;
判斷內存是否申請成功,電腦內存可能用完。
釋放內存時,需要將付給的指針進行賦空,必選出現無意義的指針,會影響程序的使用。
查看全部 -
/**
? *函數功能:返回a和b的最大值
? *a和b是兩個整數
? */
int getMax(int a, int b)
{
? ? return a > b ? a : b;
}
查看全部 -
C++函數的重載:
計算機在面對函數重載時,是通過對同名函數形成新的函數名來區分同名函數。在調用時計算機通過傳入的實參類型和實參個數來調用相應的同名函數。
使用內聯函數可以省略第2步和第4步,省去很多時間,尤其是在循環調用函數時省去更多的時間。
內聯函數條件:1.邏輯簡單,2.不能有遞歸函數
查看全部 -
函數參數默認值://有默認參數值的參數必須在參數表的最右端
void fun(int i, int j=5, int k = 10);
void fun(int i, int j=5, int k);//錯誤
在寫代碼時,建議在函數聲明時定義默認值,但是在函數定義時不寫默認值。原因是有的編譯器不能通過。
查看全部 -
int const a = 10;
在對p進行引用調用時,
指針指向const修飾的變量時,應該是const int const *p = &a;
查看全部 -
C++的引用類型,
什么是引用:即為別名
int a = 3;
int &b = a;
b = 10;
cout << a << endl;
結構體的定義:
typedef struct
{
int x;
int y;
}Coor;
int *p = &a;//指指針p指向a的地址
int *&q = p;//表示指針別名q賦值為指針p
*q=20//將20賦值給以上三個變量
查看全部 -
C++內存管理。本質為:資源的申請和歸還。
內存的申請和釋放。
運算符: new和delete。
申請:int *p=new int;? ? ? ? 釋放:delete p;?
塊內存:
? ? ? int *arr=new int[10];? ?//申請塊內存;
? ? ? delete? []arr;? //釋放塊內存;
注意:? ?某個特定用括號,數組用中括號。?
? ? ??????????????????int *p=new int(20);? // 訪問整數20的內存
????????????????????? int *p=new int[20];? ? ?//空間大小為20?C++和C語言比較:
申請時應考慮申請失敗的情況: if(p==NULL);
釋放內存之后,將指針置空。
流程為:申請(new)—判斷(if p==NULL)—釋放(free)—置空(p=NULL)
查看全部 -
函數參數的默認值規則:有默認值的參數應放在參數表的最右端。
函數默認值的注意事項:聲明時可加默認值,定義不建議加默認值。
函數重載。
(1)同一函數名稱定義多個函數;
(2)函數的參數個數或類型不同。
函數之間互稱重載。內聯函數,關鍵字 inline。
優點:效率比較高;
條件為:使用頻繁且邏輯簡單的函數建議內聯;
遞歸函數無法使用內聯。
查看全部 -
int?const?a=3; int?*p=&a;?????? //錯誤表達,原因:雖然a為常值,但指針p為可變的。應用const指針修飾const?變量。 //正確為: int?const?a=3; const?int?const*p=&a;
查看全部 -
1.主要對 引用--別名進行介紹。
2.對數據類型、結構體和指針的引用進行說明。
3.引用必須做初始化。 正確:int &a=b;? ?錯誤:int &a;
查看全部 -
1 c++函數形參可以賦初值,但推薦在函數聲明中賦值,函數定義中不賦值; 2 c++函數形參初值會被實參覆蓋查看全部
舉報