天天看點

C ++ 基本文法

筆記:https://blog.csdn.net/ClaireSy/article/details/108422945

  1. 第一個程式
  2. 注釋
  3. 變量
  4. 常量
  5. 關鍵字
  6. 辨別符命名規則
  7. 資料類型
  8. sizeof 關鍵字
  9. 浮點型
  10. 字元型
  11. 轉義字元
  12. 字元串型
  13. 布爾類型
  14. 資料的輸入 cin
  15. 運算符
  16. 程式流程結構
  17. 跳轉語句
  18. 數組
  19. 冒泡排序
  20. 二維數組
  21. 函數
  22. 指針
  23. 結構體

1.第一個程式

#include<iostream>
using namespace std;
int main() {

    cout << "HelloWorld" << endl;
    system("pause");
}      

2.注釋

單行注釋 //

多行注釋 /* 内容 */

3. 變量

資料類型 變量名稱 = 初始值 ;

// 單行注釋
    /*
      1.
      多行注釋
      2....
     */
    int a = 10;
      

4.常量

用于記錄程式中不可更改的資料,常量一旦定義不可修改

#define  宏常量

const 修飾的變量

#include<iostream>
using namespace std;

#define DAY 7

int main() {
    
    cout << "一周有" << DAY << "天" <<endl;

    const int month = 12;

    cout << "一年有" << month << "月" << endl;

    system("pause");
}      

5.關鍵字/辨別符

C ++ 基本文法

 6.辨別符命名規則(見明知意)

  • 辨別符不能是關鍵字
  • 辨別符隻能是字母、數字、下劃線
  • 第一個字元必須是字母或者下劃線
  • 辨別符區分大小寫

7.資料類型

 變量定義: 變量類型 變量名 = 變量初始值;

變量類型存在的意義是為變量配置設定合适的記憶體空間

short  2個位元組 (-32768~32767)

int  4個位元組 (-2147483648~2147483637)

long  32位4位元組,64位 8 位元組

long long 8位元組

short num_1 = 10;
int num_2 = 10;
long num_3 = 10;
long long num_4 = 10;      

8.sizeof 關鍵字

int x  = sizeof(類型);

cout << sizeof(short) << endl;
cout << sizeof(int) << endl;
cout << sizeof(long) << endl;
cout << sizeof(long long) << endl;      
C ++ 基本文法

9.浮點型

單精度:float

雙精度:double

float  4位元組,7有效位數

double  8位元組,15位精度

預設情況下,小數顯示6位有效數字

科學計數法

float f1 = 3e2;

cout << f1 << endl;

float f2 = 3e-2;      

 10.字元型

定義 char ch = \'a\';

字元類型占用的記憶體空間: 1 位元組

  • 隻能使用 ‘ ’ ,不能使用雙引号
  • 單引号内不能超過4個字元,但是始終隻識别最後一個字元、
  • 字元對于的數字 ASCII

ASCII 表: http://ascii.911cha.com/

11.轉義字元

換行 \n

水準制表  \t

反斜杠  \\

cout << "he\tWorld"<<endl;
cout << "hel\tWorld" << endl;
cout << "hedd\tWorld" << endl;
cout << "heddd\tWorld" << endl;      
C ++ 基本文法

12.字元串型

有兩種風格

1.C語言風格的串 

char  變量名[] = "字元串";

2.C++ 風格字元串

string  變量名 = “字元串”;

//[] 必須放在變量後
    char str[] = "hello world";
    cout << str << endl;

    string str2 = "Hello ,World 2.0";
    cout << str2 << endl;      

string 類型需要包含新的頭檔案

#include<string.h>      

13.布爾類型

  • true   本質是1
  • false  本質是0 

占用 1 個位元組的記憶體,本質上 0 代表假 , 1 代表真。 布爾類型非0即為真

14. 資料的輸入

關鍵字 cin 

格式: cin >> 變量 ;

int a;
cout << "請輸入a:";
cin >> a;
cout << "a:"<<a<<endl;      

15. 運算符

算術運算符: + - * /  % ++ --

指派運算符:+=  -=  *=  /=  %=

比較運算符:==  , !=, >,<,<=,>=, 

邏輯運算符:!  &&  ||

  • 整數相除,隻保留整數部分
  • 取餘 % 隻能作用在整數
  • 對整數指派小數,真正生效的隻有整數部分
  • && 前置為假,則後條件不判斷, || 前置為真,後條件不判斷,即短路

 16.程式流程結構

  • 順序結構 順序執行,不發生跳轉
  • 選擇結構 if 語句
  • 循環結構 while, for, do-while

分支包括:單個 if ,if -else  , if -else if - else  ,嵌套if 等

三目運算符:  表達式1 ? 表達式2 : 表達式3;

int i = 0;
    int tag = 1;
    do {
        cout << i << endl;
        i++;
        if (i == 50) {
            tag = 0;
        }
    } while (tag);      

17.跳轉語句

  • break

可以在 switch 中跳出,可以在循環中 ,可以出現在多層循環中

  •  continue 跳過目前行以下的代碼
  • goto 可以無條件的跳轉語句

文法: goto  标記

goto flag;
    cout << "aaa"<<endl;

    cout << "bbb"<<endl;

    flag:
    cout << "ccc"<<endl;      

18.數組

存放相同的資料元素

資料類型  數組名[數組長度];

資料類型 數組名[數組長度] = {值1,值2。。。};

資料類型 數組名[] = {值,,,};

 一維數組數組名的用途:

  1. 可以統計整個數組在記憶體中的長度
  2. 可以擷取數組在記憶體中首位址
//數組大小
    cout << sizeof(arr) << endl;

    //數組第一個元素的大小
    cout << sizeof(arr[0]) << endl;

    //數組長度
    cout << sizeof(arr) / sizeof(arr[0]) << endl;

    //數組首位址
    cout << arr << endl;      
//數組首位址
    cout << (int)arr << endl;

    //第一個元素位址 = 數組首位址
    cout << (int)&arr[0] << endl;

    //第二個元素位址 = 第一個元素位址 + 類型大小
    cout << (int)&arr[1] << endl;      

19.冒泡排序

原理:周遊數組,每一次周遊都将昂一個極大或者極小的值放在數組的一端

void bubbleSort(int data[],int size) {
    for (int i = 0; i < size-1; i++) {
        for (int j = 0; j < size-i-1; j++) {
            if (data[j] < data[j + 1]) {
                int temp = data[j];
                data[j] = data[j+1];
                data[j+1] = temp;
            }
        }
    }
}      

 20.二維數組

資料類型  數組名 [行數][列數] ;

int arr[2][3];

    int arr2[2][3] = {1,2,3,4,5,6};

    int arr3[2][3] = { {1,2,3},{4,5,6} };

    int arr4[][3] = {1,2,3,4,5,6}      

21. 函數

函數參數傳遞:實參、形參

值傳遞:

形參的變化不會影響到原來的值

引用傳遞:

傳遞的是應用的位址

函數聲明:提前告訴編譯器函數的存在,聲明可以多次,但是定義隻能用有一次

函數的分檔案編寫:

  1. 建立 .h 檔案
  2. 建立 .cpp 檔案
  3. 在  .h 檔案建立聲明
  4. 在 cpp 檔案包含頭檔案  (使用 ” “)
#pragma once
#include<iostream>
using namespace std;
void swap();

void swap() {
    cout << "swap..." << endl;
}      

Main

#include "swap.h"
int main() {
    swap();
    return 0;
}      

22.指針

int a = 10;

    int *p = &a;

    cout << "a:" << a << endl;

    cout << "p:" << p << endl;
    
    cout << "*p:" << *p << endl;      

指針變量 32位為 4 位元組 ,64 位 8位元組

空指針&野指針

空指針:指針變量指向位址編号為0 的指針(0~255 記憶體 編号是系統占用,不能通路)

    用于對指針變量進行初始化,空指針不可以進行通路

    int *p  =NULL;

野指針:指針變量指向非法的記憶體空間

int* p = (int*)0x00110;

    cout << *p << endl;      

const 修飾指向

  1. const 修飾指向   指針的指向可以修改,指針指向的值不可修改
  2. const 修飾常量 
  3. const 修飾指針以及常量
//常量指針
    int a = 10;
    int b = 20;

    const int* p = &a;

    //*p = 20; 不可修改
    p = &b;      
//指針常量
    int a = 10;
    int b = 20;

    int * const p = &a;
    //p = &b; 指針不可修改
    *p = 30;      
//const 修飾指針與常量
    int a = 10;
    int b = 20;

    const int * const p = &a;
    //p = &b; 指針不可修改
    //*p = 30; 值不可修改      

23.結構體

建構使用者自定義的資料類型

文法: 

struct  結構體名稱{

成員清單

 };

結構體數組: struct 結構體名稱 數組名[] = {...}

void print(const int * a){
    //a = 10;
}      
C ++ 基本文法