-
visual stadio查看全部
-
賦值
交換變量(兩個或三個)
簡便賦值符+=查看全部 -
.cpp通用? .c?????? c++查看全部
-
#include <stdio.h>
int main(int argc, char** argv)
{
int a = 1;
int b = 2;
int* pA = &a;
int* pB = &b;
? ?pA = pB;
return 0;
}
運行成功 yep?。。?/p>
查看全部 -
const定義常量
查看全部 -
1-會不會用的標準,是能不能寫出高效率切穩定運營的程序。查看全部
-
int main(int argc,char **argv)
?{
? ? ?int a = 10;
? ? ?int b = 20;
? ? ?swap(&a, &b);
? ? ?return 0;
?}查看全部 -
void swap(int * a, int * b)
?{
? ? ?int temp = *a;
? ? ?*a = *b;
? ? ?*b = temp;
?}void swap(int * a, int * b)
?{
? ? ?int temp = *a;
? ? ?*a = *b;
? ? ?*b = temp;
?}查看全部 -
調用時不許輸入類型名字
查看全部 -
C++ 會為函數分配相應的內存,而且還存在參數的拷貝。這些就導致函數在調用的時候會帶來額外的內存消耗。
但是函數又是一個可以讓程序變得模塊清晰的東西。那么有沒有什么辦法又能讓我們使用函數,而又不帶來更多的性能消耗呢?
C++ 為我們提供了一種函數形式,叫做內聯函數。在程序編譯的時候,編譯器會把內聯函數的代碼復制出來,粘貼到調用的地方。例如如下代碼:
?
需要注意的是,內聯函數必須在函數定義的時候寫上 inline 才可以,也就是說,這樣寫是不行的:
查看全部 -
int fact(int n)
{
? ?if(n==1) 這一部分是明白結束條件{
? ? ? ?return 1;
? ?}
? ?else {
? ? ? ?return n * fact(n-1);//這一部分是核心操作
? ?}
}
int main(int argc,char **argv)
{
? ?int x = 5;
? ?int res = fact(x);
? ?printf("%d\n",res);
? ?return 0;
}查看全部 -
1. 遞歸的終止條件是什么?
這是非常重要的,在遞歸中,我們必須要設計好這一點,那就是遞歸什么時候停止。否則就會像前面的例子一樣,直接爆棧。
2. 遞歸被分解后最基本操作是什么?
遞歸非常適合層級調用關系,每一層都執行相同的操作,這個要素,就是要提取出遞歸最核心的要素。
3. 遞歸調用傳遞的參數
這里傳遞的參數其實除了參數列表,還包括返回值。參數列表表示給下一層調用需要傳遞什么,返回值表示上一層調用需要返回什么。
接下來利用遞歸來求一個數的階乘,首先來分析一下問題,假如要求計算 5 的階乘,實際上是在進行以下算式:
查看全部 -
聲明常量(不可變的量)在前面加 const
查看全部 -
聲明常量(不可變的量)在前面加 const
查看全部 -
參數列表的寫法是類型 + 參數名稱,每兩個參數之間使用逗號隔開。
參數可以是任意類型,可以是基礎數據類型,可以是指針,也可以是結構體類型。
在函數調用的時候,依照函數定義時參數列表的順序依次傳入想要傳入的值。在使用的時候,參數的順序不可以改變。
上面的函數在調用的時候,傳入的第一個參數 a 是int型,第二個參數?b 是float型。不能顛倒兩者的順序,如果顛倒,則可能發生語法錯誤,或者進行數據類型的隱式轉換。
int func(int a, float b)
查看全部 -
允許1一個返回值
查看全部 -
int c = avg(a, b); //函數調用
函數名(參數,多個可用逗號隔開)
這樣修改之后,發現程序沒法運行了。這是因為在 C++ 中,函數要想使用,必須要先聲明。所以我們可以在調用之后實現函數體,但是必須在調用之前聲明
查看全部
舉報