C 基礎知識部分之二

2021-08-14 02:28:06 字數 2725 閱讀 2849

1、變數

c++中可以申請設定變數,然後在某些地方使用它。申請變數時最好賦初值,否則這些未初始化的變數通常會被賦予乙個半隨機值,這個值取決於當時記憶體中的內容,這個也是許多bug的**。

下面是常見的c++變數的型別:

int /signed 正整數或者負整數

short 短整型整數,通常是兩個位元組

long 長整型整數,通常是四個位元組

long long 超長整型整數,長度不會低於長整型變數,通常是八個位元組

unsigned 無符號整數

unsigned short 無符號短整型整數

unsigned long 無符號長整型整數

unsigned long long 無符號超長整型整數

float 浮點型數字

double 雙精度浮點數,精度不會低於float

long double 長雙精度浮點數,精度不會低於double

char 單個字元

char16_t  單個16位字元

char32_t  單個32位字元

wchar_t  單個寬字元大小取決於編譯器

bool true或者false

c++沒有提供基本的字串型別,但是作為標準庫的一部分提供了字串的標準實現。

不得不提變數之間的型別轉換:

共有三種方法:

float myfloat = 3.1415926f;

int i1 = (int) myfloat;//方法一

int i2 = int (myfloat); //方法二

int i3 = static_cast(myfloat); //方法三

2. 運算子

&將乙個變數的原始位和另乙個變數執行按位「與」運算

| 按位或運算

<<、>>、<<=、>>= 對乙個變數的原始位執行移位運算,每一位左移或者右移指定的位數

^ 執行兩個變數之間的按位異或運算

使用多種運算子進行運算時,最好帶上(),除非你記得符號的優先順序。

3. 型別

3.1 列舉型別

enum ball ;

其中預設情況下baseketball=0,soccer=1,tennis=2,pingpong=3;

但是enum ball ;

此時baseketball=1,soccer=2,tennis=10,pingpong=11;

即編譯器會將上乙個列舉成員的值遞增 1,再賦值給當前的列舉成員。

需要注意的是:如果試圖對列舉型別的成員例如soccer,執行算數運算或者將其作為整數對待,編譯器會給出警告或者錯誤資訊。

3.2 強型別列舉

一般列舉型別總是被解釋為整數資料,因此可以在不同的列舉型別中選取不同的值進行比較。

enum class能夠解決這些問題。

enum class ball

如果要執行ball::soccer==0這樣的**,就是不合法的

預設情況下,列舉值的基本型別是整型,但是可以採用以下方式加以改變:

enum class ball:unsigned long

3.3 結構

結構struct允許將乙個或者多個已有型別封裝到乙個新的型別中。例如:

struct student

和struct相似的是union,不過union同時只能代表其中乙個型別:

union student

union只能表示lastname或者firstname或者idnumber,不能三者同時表示,建立union物件的時候也只能依照union型別中所包含的最大的那個型別(例如lastname)所佔記憶體大小來申請記憶體。

C 基礎部分之語法和基礎知識

c 的入口函式main有以下形式 無入口引數 無返回值 1public class helloworld 2public class helloworld 2public class helloworld 2public static void main string args 2 i,j,i j ...

C 基礎知識之二

c 基礎知識之二 1 靜態字段 靜態成員 被類的所有例項共享,對其改變,對所有例項都可見。2 宣告為靜態的有 字段 方法 屬性 建構函式 運算子 事件。3 常量與靜態量不同 常量沒有自己的儲存位置,在編譯時被編譯器替換。4 類屬性與類字段不同 屬性是乙個函式成員,它不為資料儲存分配記憶體並執行 5 ...

linux shell指令碼基礎知識之二

一 shell字串 字串是shell程式設計中最常用最有用的資料型別 除了數字和字串,也沒啥其它型別好用了 字串可以用單引號,也可以用雙引號,也可以不用引號。單雙引號的區別跟php類似。str this is a string 單引號字串的限制 your name qinjx str hello,i...