-
有符號可存放正負數
無符號只可存放正數查看全部 -
malloc & free
查看全部 -
內聯函數有好處,就是可以節省調用時候的額外開銷。但是同時也會造成另外的問題,內聯是以代碼膨脹為代價而進行的優化,而如果一個函數過長,或者一個函數被調用了好多次,那么顯然就不是適合使用內聯函數優化。 其實現代的編譯器,會對代碼進行足夠的優化,有些時候,你寫了內聯函數,但是編譯器不一定會按照內聯去優化,而有的函數,你沒有寫內聯,他卻會給你優化成內聯。所以大家在初學 C++ 的時候其實沒必要太糾結內聯函數的實際優化效果。查看全部
-
需要注意的是,內聯函數必須在函數定義的時候寫上 inline 才可以,也就是說,這樣寫是不行的: inline int add(int a, int b); int add(int a, int b) { return a + b; }查看全部
-
那么有沒有什么辦法又能讓我們使用函數,而又不帶來更多的性能消耗呢? C++ 為我們提供了一種函數形式,叫做內聯函數。在程序編譯的時候,編譯器會把內聯函數的代碼復制出來,粘貼到調用的地方。查看全部
-
long long>=long>=int>=short>=char
查看全部 -
指針
查看全部 -
#include <stdio.h>
int main(int argc,char **argv)
{
? ?int a = 99;
? ?int b = 98;
? ?printf("a: %d, b: %d", a, b);
? ?return 0;
}
只要寫兩個占位符就行了,程序運行輸出 a: 99, b: 98cout
#include <stdio.h>
#include <iostream>
int main(int argc,char **argv)
{
? ?int a = 99;
? ?int b = 98;
? ?std::cout << "a: " << a << ", b: " << b << std::endl;
? ?return 0;
}
輸出結果 a: 98, b: 99
cout 相對 printf 來說,更易用一些,只需要將想要輸出的內容用 << 連接起來就好了。scanf
我們可以通過 printf 向控制臺輸出內容,也同樣可以使用控制臺向程序輸入內容。輸入內容,就需要用到一個函數scanf。
我們先來看個例子:
#include <stdio.h>
int main(int argc,char **argv)
{
? ?int a = 0;
? ?scanf("%d", &a);
? ?return 0;
}在上面的程序中,當程序運行到 scanf("%d", &a); 這一句的時候,程序會停下來,此時你可以在黑框框里輸入一個數字,然后按回車。程序就會把你輸入的數字賦值給變量 a,然后繼續執行。
當然,你也可以一次輸入兩個值:
#include <stdio.h>
int main(int argc,char **argv)
{
? ?int a = 0;
? ?int b = 0;
? ?scanf("%d, %d", &a, &b);
? ?return 0;
}這樣就可以輸入兩個值了,由于"%d, %d"中間寫的是逗號,所以輸入的兩個值要用逗號隔開。
cin
除了 scanf 之外,還有一種輸入數據的方式,就是 cin,我們先看一個 cin 的例子
#include <stdio.h>
#include <iostream>
int main(int argc,char **argv)
{
? ?int a = 0;
? ?int b = 0;
? ?std::cin >> a >> b;
? ?return 0;
}使用 cin 可以連續從鍵盤讀取想要的數據,以空格、tab鍵或換行符作為分隔符。cin 相對于 scanf 來說,不需要指明類型,用起來更方便一些。
查看全部 -
代碼塊預覽復制 上面的函數在調用的時候,傳入的第一個參數 a 是int型,第二個參數 b 是float型。不能顛倒兩者的順序,如果顛倒,則可能發生語法錯誤,或者進行數據類型的隱式轉換。查看全部
-
參數列表的寫法是類型 + 參數名稱,每兩個參數之間使用逗號隔開。 參數可以是任意類型,可以是基礎數據類型,可以是指針,也可以是結構體類型。 在函數調用的時候,依照函數定義時參數列表的順序依次傳入想要傳入的值。在使用的時候,參數的順序不可以改變。查看全部
-
這是因為在 C++ 中,函數要想使用,必須要先聲明。所以我們可以在調用之后實現函數體,但是必須在調用之前聲明 #include <stdio.h> int avg(int a, int b); //函數聲明 int main(int argc,char **argv) { int a = 10; int b = 20; int c = avg(a, b); return 0; } int avg(int a, int b) { return a + b / 2; } 我們現在將函數分成兩個部分來說明,分別是函數頭,函數體查看全部
-
int length = 100; int array[length]; int target = 10; for(int i=0;i<length;i++) { if(array[i] == target) { continue; } printf("array[%d]: %d\n", i, array[i]); } 代碼塊預覽復制 在這段程序中,當 array[i] == target 的時候,會執行 continue 語句,跳出本次循環,而進入下一次循環,所以本次的 printf 不會被打印,而下一次會繼續打印。查看全部
-
continue 與 break 類似,不一樣的是,continue 是結束本次循環,進行下一次循環。查看全部
-
break 語句,可以直接跳出循環,執行下一階段的程序。查看全部
-
判斷數組中是否存在某個數字,只要找到一個,就說明存在。那么一旦確認存在之后,其實就沒必要繼續往下找了,多余的操作只會徒增性能的損耗。這時候,就會用到 break 關鍵字。查看全部
舉報