變數和基本型別
阿新 • • 發佈:2022-03-06
#include <iostream> //一個使用io輸入輸出物件 void test(); int main() { std::cout << "Enter two numbers" << std::endl; int v1 = 10; int v2 = 0; std::cin >> v1 >> v2; std::cout << v1 + v2 << std::endl; test(); return 0; } extern double pi = 2.141; //定義 void test() { unsigned u = 10; int i = -42; //把負數轉化為無符號數類似於直接給無符號數賦一個負值,結果等於這個負數加上無符號數的模 std::cout << i + i << std::endl; std::cout << i + u << std::endl; unsigned u1 = 42, u2 = 10; std::cout << u1 - u2 << std::endl; std::cout << u2 - u1 << std::endl; //但從無符號數中減去一個值時,不管這個值是不是無符號數,我們都必須確保結果不能是一個負值 //宣告和定義(變數只可以被定義一次,但是可以被多次宣告) extern int i; //宣告i而非定義i int j; //宣告並定義j //extern double pi = 3.1416; 錯誤:不允許對外部變數的區域性宣告使用初始值設定項(初始化) } void yingYong() { int val = 1024; int& refVal = val; //int &refVal2; 報錯,引用必須被初始化,引用型別的初始化必須為一個物件 //解引用操作適用於那些確實指向了某個物件的有效指標 //指向指標的引用 int i = 42; int* p; int*& r = p; r = &i; //將p指向i *r = 0; // const int i = 42;//const物件必須初始化 //const的引用 const int ci = 1024; const int& r = ci; //不可以讓一個非常量的引用指向一個常量物件 int &r2 = ci; //指標常量 該指標指向的值不可以修改;常量指標 指標指向的物件不可以修改 //頂層const 指標本身是一個常量,底層const指標所指向的物件是一個常量 int i = 0; const int ci = 42; const int* p1 = &ci; const int* const p2 = p1; //constexpr宣告中如果定義了一個指標,限定符constexpr僅對指標有效,與指標所指向的物件無關 const int* p = nullptr; constexpr int* q = nullptr; int i = 0, & r = i; auto a = r; //自動型別推導 const int ci = 0, & cj = ci; decltype(ci) x = 0; //x的型別是const int decltype(cj) y = x; //y的型別是const int& //decltype((i)) d; 錯誤,d是int&,必須初始化 decltype(i) e;