首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> C++ 入門

C++ 基礎內容復習:變量定義、字符串、vector、數組、指針、引用

     編輯:C++ 入門

1. 變量定義與初始化

每個定義以類型說明符開始:

int count;
double sales_price, sum;
std::string title;           // 需 #include <string>
Sales_item bookItem;         // 自定義類型

// using 簡化寫法
using std::string;
using std::cin;
// 之後可直接用 string、cin

2. string 操作注意事項

  • 字符串字面量相加報錯:`string s = "hello" + ",";` ❌
  • 至少一邊是 string 對象:`string s = string("hello") + ",";` ✅ 或 `string s = "hello"s + ",";` (C++14)
  • 下標類型為 `string::size_type`(無符號)

3. vector 容器

初始化方式

vector<T> v1;                 // 空
vector<T> v2(v1);             // 拷貝
vector<T> v3(n, val);         // n 個 val
vector<T> v4(n);              // n 個值初始化元素

常用操作

v.push_back(val);             // 尾插
v.size();                     // 元素個數
v.empty();                    // 是否為空
v[i];                         // 下標訪問(不檢查邊界)
v.at(i);                      // 下標訪問(檢查邊界)

迭代器

vector<int>::iterator it = v.begin();
vector<int>::const_iterator cit = v.cbegin();  // 不可修改元素

for (auto it = v.begin(); it != v.end(); ++it)
    *it = 0;  // 修改元素

// 範圍 for (C++11)
for (auto& x : v) x = 0;

⚠️ 迭代器失效

任何改變 vector 長度的操作(`push_back`、`insert`、`erase`、`resize` 等)都會使所有迭代器失效。

4. 數組

  • 維度必須是常量表達式
  • 不允許拷貝賦值:`int a[] = b;` ❌
  • 字符數組特殊:`"C++"` 自動添加 `\0`,維度為 4
  • 下標類型為 `size_t`

5. 指針

定義與初始化

int *p = &val;      // 取地址
int *p = 0;         // 空指針 (或 nullptr C++11)
void *vp = &val;    // 通用指針,可保存任意類型地址

指針運算

  • `p + n`:指向第 n 個後續元素
  • 數組名在表達式中自動轉換為指向首元素的指針

6. 引用

  • 別名,初始化後不能改變綁定對象
  • `int &r = val;` — r 是 val 的別名
  • 引用賦值修改的是被引用對象,而非引用本身

7. 指針 vs 引用賦值差異

int ival1 = 1024, ival2 = 2048;
int *pi = &ival1, *pi2 = &ival2;
pi = pi2;        // pi 指向 ival2,ival1 值不變

int &ri = ival1, &ri2 = ival2;
ri = ri2;        // ival1 值變為 2048,ri 仍綁定 ival1

8. 實戰代碼片段

// 字符串輸出需包含 <string>
#include <string>
std::string s1 = "1234567";
std::cout << s1 << std::endl;  // 正確輸出

// 指針遍歷數組
int ia[] = {0, 2, 4, 6, 8};
int *ip = ia;           // 指向首元素
int *ip1 = &ia[0];      // 等價
for (; ip != ip + 5; ++ip)
    std::cout << *ip << ' ';
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved