C++基礎知識學習筆記(1)

greencode發表於2024-05-20

資料來源

https://www.bilibili.com/video/BV1et411b73Z/?spm_id_from=333.337.search-card.all.click&vd_source=cc561849591f6a210152150b2493f6f3

簡單知識點

建立專案

  1. 用VS建立了一個C++的空專案。

  2. 在【原始檔】中建立一個cpp檔案

  3. 書寫以下程式碼並執行

#include <iostream>
using namespace std;

int main()
{
    cout << "Hello world" << endl;

    system("pause");
    return 0;
}

註釋

  1. 單行註釋://
  2. 跨行註釋:/* */

變數

變數定義的語法:資料型別 變數名 = 變數值

int a = 100;
cout << "a = " << a << endl;

常量

有兩種:

  1. 宏常量
#define PI 3.1415926

int main()
{
	//PI = 3;//會報錯,不能再修改了
	cout << "PI = " << PI << endl;

	system("pause");
	return 0;
}

注意#define的位置一般放在檔案頭部(方便集中瀏覽和修改),當然也能放到函式里面(在呼叫位置前面)。

  1. const修飾的常量
int main()
{
	const int PI = 3.14;
	//PI = 3;//不能再修改了
	cout << "PI = " << PI << endl;

	system("pause");
	return 0;
}

識別符號命名規則

  1. 不能用關鍵字
  2. 只能使用字母、數字、下劃線
  3. 開頭不能用數字
  4. 區分大小寫
  5. 建議命名時見名知義(非強制)

資料型別

資料型別的意義:給變數分配合適的記憶體空間。

整型

image

	short a1 = 1;
	int a2 = 1;
	long a3 = 1;
	long long a4 = 1;
	cout << a4 << endl;
	//short取值範圍:-32768 到 32767
	short a1 = 32767;
	short a2 = 32768;
	cout << a1 << endl;//32767
	cout << a2 << endl;//-32768

檢視型別所佔記憶體長度

使用sizeof(資料型別 / 變數)

	short a = 1;
	int size_a = sizeof(a);
	int size_int = sizeof(int);
	cout << size_a << endl;//2
	cout << size_int << endl;//4
	cout << sizeof(long) << endl;//4
	cout << sizeof(long long) << endl;//8

實型(浮點型)

  1. 單精度float
  2. 雙精度double

image

	float f1 = 3.14f;//如果不加f會將其當做double轉為float
	cout << f1 << endl;

	double d1 = 3.14159265354;
	cout << d1 << endl;//預設輸出一個小數,會顯示6位有效數字

	cout << "float佔用空間:" << sizeof(float) << endl;//4
	cout << "double佔用空間:" << sizeof(double) << endl;//8

科學記數法:

	float f2 = 3e5;
	cout << f2 << endl;//300000
	float f3 = 3e-2;
	cout << f3 << endl;//0.03

字元型

用於表示單個字元。
char ch = 'a';

	char ch = 'd';
	cout << ch << endl;//d
	cout << sizeof(char) << endl;//1

注意:

  1. 用單引號
  2. char佔一個位元組。
  3. 字元變數儲存的不是字元本身,而是其ASCII碼。

檢視字元型變數的ASCII碼:

	int a = (int)'a';
	cout << a << endl;//97

a:97
A:65

跳脫字元

表示一些不能顯示出來的ASCII碼。
常用的跳脫字元有:\n(換行)、\\(反斜槓)、\t(水平製表)

字串型

用於表示一串字元。

image

兩種風格:

  1. C風格字串char str[] = "hello";
  2. C++風格字串string str2 = "world";
    有的VS低版本中需要加入標頭檔案才能支援string:#include <string>

布林型別

代表真假,有兩種值:true(本質是1)、false(本質是0)。
佔一個位元組。

	bool a = true;
	bool b = false;
	cout << a << endl;//1
	cout << b << endl;//0
	cout << sizeof(bool) << endl;//1

資料的輸入

作用:從鍵盤獲取資料。

image
image

注意:

  1. 針對int、float、double等數值型,輸入的值如果無法轉為int,則轉為0.
  2. 針對bool,輸入的值如果能轉為非0的int,則轉為1,否則轉為0.

運算子

image

算數運算子

image

注意:

  1. 整數相除,結果還是整數,會去除小數。
  2. 被除數為0會報錯。
  3. 取模是求餘數。
  4. 兩個整數才能做取模。

賦值運算子

image

比較運算子

image

cout << (10 < 9) << endl;//0

邏輯運算子

image

	cout << !100 << endl;//100是真,取反為假

程式流程結構

順序結構、選擇結構、迴圈結構

支援三目運算子:

  1. 表示式 ? 值1 : 值2
  2. 三木運算子可以返回變數:(a > b ? a : b) = 100

switch語句:

  1. 只能支援整型或者字元型,不支援區間

goto語句:
無條件跳轉到某個標記(不建議使用)。

	cout << 1 << endl;
	cout << 2 << endl;
	goto FLAG;
	cout << 3 << endl;
	cout << 4 << endl;
	
FLAG:

	cout << 5 << endl;
	cout << 6 << endl;

一維陣列

三種定義方式:

image

一維資料名稱的用途:

  1. 統計整個陣列在記憶體中的長度
    統計陣列從起始位置到末尾位置的長度:sizeof(arr)
    第一個元素的長度:sizeof(arr[0])
    陣列元素個數等於前兩者相除了。
  2. 獲取陣列在記憶體中的首地址

列印陣列首地址(16進位制):

cout << "陣列首地址:" << arr2 << endl;//000000C7FBBCFCA8
cout << "陣列首地址:" << (int)arr2 << endl;//-71500632  強轉int了

//列印各個元素的地址
cout << "元素1的地址:" << (int)&arr2[0] << endl;//-71500632
cout << "元素2的地址:" << (int)&arr2[1] << endl;//-71500628 (和元素1的地址相差4個位元組,正好是一個int的大小)

注意:陣列名是一個常量,不能給其再賦值。

二維陣列

四種定義方式:
image

	int arr[4][4];
	int arr2[2][1] = { {1}, {2} };
	int arr3[2][1] = { 1, 2 };
	int arr4[][1] = { {1}, {2} };

二維陣列名稱用途:

  1. 檢視陣列所佔記憶體空間
  2. 檢視二維陣列首地址

image

image

image

函式

image

int add(int n1, int n2) {
	return n1 + n2;
}
int main()
{
	cout << add(1, 2) << endl;
	system("pause");
	return 0;
}

值傳遞:

  1. 函式呼叫時,實參的值傳遞給函式定義中的形參
  2. 形參的值修改,不會影響實參的值。

函式的宣告:

  1. 為了告訴編譯器函式的名稱,以及如何呼叫函式。
  2. 函式的主體可以單獨定義。
  3. 函式可以宣告多次,但定義只有一次。

image

//用函式宣告,提前告訴編譯器函式存在
int add(int n3, int n4);

int main()
{
	cout << add(1, 2) << endl;
	system("pause");
	return 0;
}
int add(int n1, int n2) {
	return n1 + n2;
}

函式的分檔案編寫:
image

  1. 標頭檔案add.h中,宣告函式:
int add(int n1, int n2);
  1. 原始檔add.cpp中,定義函式:
#include "add.h"
#include <iostream>
using namespace std;
int add(int n1, int n2)
{
	int n3 = n1 + n2;
	cout << n3 <<endl;
	return n3;
}

注意:#include時,雙引號表示自定義的標頭檔案

  1. main函式中引入標頭檔案,呼叫標頭檔案中的函式:
#include <iostream>
using namespace std;

#include "add.h"
int main()
{
	cout << add(1, 4) << endl;
	return 0;
}

相關文章