1 C++初識
1.1 變數
作用:給一段指定的記憶體空間起名,方便操作這段記憶體
注意:C++在創建變數時,必須給變數一個初始值,否則會報錯
1.2 常量
作用:用于記錄程式中不可更改的資料
C++定義常量兩種方式
- #define 宏常量: #define 常量名 常量值
通常在檔案上方定義,表示一個常量 - const修飾的變數:const 資料型別 常量名 = 常量值
通常在變數定義前加關鍵字const,修飾該變數為常量,不可修改
1.3 關鍵字
作用:關鍵字是C++中預先保留的單詞(識別符號),在定義變數或者常量時候,不要用關鍵字
1.4 變數、常量命名規則
- 識別符號不能是關鍵字
- 識別符號只能由字母、數字、下劃線組成
- 第一個字符必須為字母或下劃線
- 識別符號中字母區分大小寫
2 資料型別
2.1 整型
short(短整型) 2位元組
int (整型) 4位元組
long(長整形) Windows為4位元組,Linux為4位元組(32位),8位元組(64位) (-2^31 ~ 2^31-1)
2.2 浮點型
單精度float 4位元組
雙精度double 8位元組
2.3 字符型
作用:字符型變數用于顯示單個字符
char ch = 'a';
- C和C++中字符型變數只占用1個位元組,
- 字符型變數并不是把字符本身放到記憶體中存盤,而是將對應的ASCII編碼放入到存盤單元
2.4 字串
作用:用于表示一串字符
#include<string>
string 變數名 = "字串值"
2.5 布爾 bool
作用:布爾資料型別代表真或假的值
2.6 sizeof
作用:利用sizeof關鍵字可以統計資料型別所占記憶體大小
2.7 資料輸入cin
作用:用于從鍵盤獲取資料
語法: cin >> 變數
3 運算子
3.1 算術運算子
+正號
-負號
+加
-減
*乘
/ 除
% 取模(取余)
++ 前置遞增
++ 后置遞增
-- 前置遞減
-- 后置遞減
3.2 賦值運算子
=
+=
-=
*=
/=
%=
3.3 比較運算子
==
!=
<
>
<=
>=
3.4 邏輯運算子
!
&&
||
4 流程控制陳述句
4.1 選擇結構
4.1.1 if
-
單行格式if陳述句:
if(條件){ 條件滿足執行的陳述句 }
-
多行格式if陳述句:
if(條件){ 條件滿足執行的陳述句 }else{ 條件不滿足執行的陳述句 };
-
多條件的if陳述句:
if(條件1){ 條件1滿足執行的陳述句 }else if(條件2){條件2滿足執行的陳述句}... else{都不滿足執行的陳述句}
4.1.2 三目運算子
作用: 通過三目運算子實作簡單的判斷
語法: 運算式1 ? 運算式2 :運算式3
4.1.3 switch
switch(運算式)
{
case 結果1:執行陳述句;break;
case 結果2:執行陳述句;break;
...
default:執行陳述句;break;
}
4.2 回圈結構
4.2.1 while回圈陳述句
作用:滿足回圈條件,執行回圈陳述句
語法: while(回圈條件){ 回圈陳述句 }
4.2.2 do...while回圈陳述句
作用: 滿足回圈條件,執行回圈陳述句
語法: do{ 回圈陳述句 } while(回圈條件);
注意:與while的區別在于do...while會先執行一次回圈陳述句,再判斷回圈條件
4.2.3 for回圈陳述句
作用: 滿足回圈條件,執行回圈陳述句
語法: for(起始運算式;條件運算式;末尾回圈體) { 回圈陳述句; }
4.3 跳轉陳述句
4.3.1 break陳述句
作用: 用于跳出選擇結構或者回圈結構
break使用的時機:
- 出現在switch條件陳述句中,作用是終止case并跳出switch
- 出現在回圈陳述句中,作用是跳出當前的回圈陳述句
- 出現在嵌套回圈中,跳出最近的內層回圈陳述句
4.3.2 continue陳述句
作用:在回圈陳述句中,跳過本次回圈中余下尚未執行的陳述句,繼續執行下一次回圈
5 陣列
5.1 概述
所謂陣列,就是一個集合,里面存放了相同型別的資料元素
特點1:陣列中的每個資料元素都是相同的資料型別
特點2:陣列是由連續的記憶體位置組成的
5.2 一維陣列
5.2.1 一維陣列定義方式
一維陣列定義的三種方式:
資料型別 陣列名[ 陣列長度 ];
資料型別 陣列名[ 陣列長度 ] = { 值1,值2 ...};
資料型別 陣列名[ ] = { 值1,值2 ...};
5.2.2 一維陣列陣列名
一維陣列名稱的用途:
- 可以統計整個陣列在記憶體中的長度
sizeof(arr)
- 可以獲取陣列在記憶體中的首地址
(int)arr
5.3 二維陣列
二維陣列就是在一維陣列上,多加一個維度,
5.3.1 二維陣列定義方式
二維陣列定義的四種方式:
資料型別 陣列名[ 行數 ][ 列數 ];
資料型別 陣列名[ 行數 ][ 列數 ] = { {資料1,資料2 } ,{資料3,資料4 } };
資料型別 陣列名[ 行數 ][ 列數 ] = { 資料1,資料2,資料3,資料4};
資料型別 陣列名[ ][ 列數 ] = { 資料1,資料2,資料3,資料4};
5.3.2 二維陣列陣列名
- 查看二維陣列所占記憶體空間
sizeof(arr)
- 獲取二維陣列首地址
arr
6 函式
6.1 概述
作用:將一段經常使用的代碼封裝起來,減少重復代碼
6.2 函式的定義
回傳值型別 函式名 (引數串列)
{
函式體陳述句
return運算式
}
6.3 函式的呼叫
功能:使用定義好的函式
語法: 函式名(引數)
6.4 值傳遞
- 所謂值傳遞,就是函式呼叫時實參將數值傳入給形參
- 值傳遞時,并不會影響實參
7 指標
7.1 指標的基本概念
指標的作用: 可以通過指針間接訪問記憶體
7.2 指標變數的定義和使用
指標變數定義語法: 資料型別 * 變數名;
int * p;
p = &a;
//通過*操作指標變數指向的記憶體
*p = a;
- 普通變數存放的是資料,指標變數存放的是地址
- 指標變數可以通過" * "運算子,操作指標變數指向的記憶體空間,這個程序稱為解參考
7.3 指標所占記憶體空間
int a = 10;
int * p;
p = &a;
sizeof(p);
所有指標型別在32位作業系統下是4個位元組
7.4 空指標和野指標
空指標:指標變數指向記憶體中編號為0的空間
野指標:指標變數指向非法的記憶體空間
7.5 const修飾指標
const修飾指標有三種情況
-
const修飾指標 --- 常量指標
//const修飾的是指標,指標指向可以改,指標指向的值不可以更改 const int * p1 = &a; p1 = &b; //正確 //*p1 = 100; 報錯
-
const修飾常量 --- 指標常量
/const修飾的是常量,指標指向不可以改,指標指向的值可以更改 int * const p2 = &a; //p2 = &b; //錯誤 *p2 = 100; //正確
-
const即修飾指標,又修飾常量
7.6 指標和函式
作用:利用指標作函式引數,可以修改實參的值
//值傳遞
void swap1(int a ,int b)
{
int temp = a;
a = b;
b = temp;
}
//地址傳遞
void swap2(int * p1, int *p2)
{
int temp = *p1;
*p1 = *p2;
*p2 = temp;
}
int main() {
int a = 10;
int b = 20;
swap1(a, b); // 值傳遞不會改變實參
swap2(&a, &b); //地址傳遞會改變實參
cout << "a = " << a << endl;
cout << "b = " << b << endl;
system("pause");
return 0;
}
8 結構體
8.1 結構體基本概念
結構體屬于用戶自定義的資料型別,允許用戶存盤不同的資料型別
8.2 結構體定義和使用
語法: struct 結構體名 { 結構體成員串列 };
//結構體定義
struct student
{
//成員串列
string name; //姓名
int age; //年齡
int score; //分數
};
8.3 結構體陣列
作用:將自定義的結構體放入到陣列中方便維護
語法: struct 結構體名 陣列名[元素個數] = { {} , {} , ... {} }
8.4 結構體指標
作用:通過指標訪問結構體中的成員
利用運算子 -> 可以通過結構體指標訪問結構體屬性
//結構體定義
struct student
{
//成員串列
string name; //姓名
int age; //年齡
int score; //分數
};
int main() {
struct student stu = { "張三",18,100, };
struct student * p = &stu;
p->score = 80; //指標通過 -> 運算子可以訪問成員
cout << "姓名:" << p->name << " 年齡:" << p->age << " 分數:" << p->score <<endl;
system("pause");
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/547617.html
標籤:C++
下一篇:前端轉向PHP進階之路