Re 資料型別 變數 算符

2022-08-02 07:15:13 字數 4161 閱讀 2949

乙個完整的 c 語言程式,是由乙個、且只能有乙個main()(又稱"主函式",必須有) 和若干個其他函式結合而成(可選)。

main()是 c 語言程式的入口,程式是從main()開始執行。

從函式定義的角度看,函式可分為 [系統函式] 和 [使用者定義函式]。

# includeint main(void)
使用 c 語言庫函式需要提前包含庫函式對應的標頭檔案,如這裡使用了printf(),需要包含stdio.h標頭檔案

#include<...>#include "..."的區別

// ...叫行注釋,注釋的內容編譯器是忽略的,注釋主要的作用是在**中加一些說明和解釋,這樣有利於**的閱讀。

/* ... */叫塊注釋。塊注釋是c語言標準的注釋方法。

printf是 c 語言庫函式,功能是向標準輸出裝置輸出乙個字串。

!(_v_images/20200923075708050_15355.png =400x)

資料型別的作用:編譯器預算物件(變數)分配的記憶體空間大小。

整型

需要注意的是,整型資料在記憶體中佔的位元組數與所選擇的作業系統有關。雖然 c 語言標準中沒有明確規定整型資料的長度,但 long 型別整數的長度不能短於 int 型別, short 型別整數的長度不能長於 int 型別。

當乙個小的資料型別賦值給乙個大的資料型別,不會出錯,因為編譯器會自動轉化。但當乙個大的型別賦值給乙個小的資料型別,那麼就可能丟失高位。

字元型字元型變數用於儲存乙個單一字元,在 c 語言中用 char 表示,其中每個字元變數都會占用 1 個位元組。在給字元型變數賦值時,需要用一對英文半形格式的單引號''把字元括起來。

字元變數實際上並不是把該字元本身放到變數的記憶體單元中去,而是將該字元對應的 ascii 編碼放到變數的儲存單元中。char 的本質就是乙個 1 位元組大小的整型

#include int main()
實型(浮點型)

實型變數也可以稱為浮點型變數,浮點型變數是用來儲存小數數值的。在 c 語言中, 浮點型變數分為兩種: 單精度浮點數(float)、 雙精度浮點數(double), 但是 double 型變數所表示的浮點數比 float 型變數更精確。

由於浮點型變數是由有限的儲存單元組成的,因此只能提供有限的有效數字(預設 6 位)。在有效位以外的數字將被捨去,這樣可能會產生一些誤差。

不以 f 結尾的常量是 double 型別,以 f 結尾的常量(如 3.14f) 是 float 型別。

#include int main()
常量

#include // 2. 用 #define 宣告乙個常量

#define age 21.8

int main()

變數

c 語言的比較運算中,"真" 用數字 1 來表示,"假"用數字 0 來表示。

4 個位運算子用於整型資料,包括 char 將這些位運算子成為位運算的原因是它們對每位進行操作,而不影響左右兩側的位。請不要將這些運算子與常規的邏輯運算子(&&||!) 相混淆,常規的位的邏輯運算子對整個值進行操作。

按位取反 ~

一元運算子~將每個 1 變為 0,將每個 0 變為 1。

int main(void)
位與 &

二進位制運算子&通過對兩個運算元逐位進行比較產生乙個新值。對於每個位,只有兩個運算元的對應位都是 1 時結果才為 1。

int main(void)
位或 |

二進位制運算子|通過對兩個運算元逐位進行比較產生乙個新值。對於每個位,如果其中任意運算元中對應的位為 1,那麼結果位就為 1。

int main(void)
位異或 ^

二進位制運算子^對兩個運算元逐位進行比較。對於每個位,如果運算元中的對應位有乙個是 1(但不是都是 1),那麼結果是 1;如果都是 0 或者都是 1,則結果位 0。

int main(void)
c 也有乙個組合的位異或+賦值運算子:^=

val ^= 0377

val = val ^ 0377

左移 <<

左移運算子<<將其左側運算元的值的每位向左移動,移動的位數由其右側運算元指定。空出來的位用 0 填充,並且丟棄移出左側運算元末端的位。該操作將產生乙個新位置,但是不改變其運算元。左移 n 次等價於乘以 2 的 n 次冪。

int main(void)
右移 >>

右移運算子>>將其左側的運算元的值每位向右移動,移動的位數由其右側的運算元指定。丟棄移出左側運算元有段的位。對於 unsigned 型別,使用 0 填充左端空出的位。對於有符號型別,結果依賴於機器。空出的位可能用 0 填充,或者使用符號(最左端) 位的副本填充。右移 n 次等價於除以 2 的 n 次冪。

型別轉換的原則:占用記憶體位元組數少(值域小) s的型別,向占用記憶體位元組數多(值域大) 的型別轉換,以保證精度不降低。

轉置(toggling) 乙個位表示如果該位開啟,則關閉該位;如果該位關閉,則開啟。您可以使用位異或運算子來轉置。其思想是如果 b 是乙個位(1 或 0),那麼如果 b 為 1,則 b^1 為 0;如果 b 為 0,則 b^1 為 1。無論 b 的值是 0 還是 1,0^b 為 b。

(10010011)

^(11111111)

=(01101100)

int a = 6; // 0000 0110

int b = 7; // 0000 0111

a = a^b; // 0000 0001

b = a^b; // 0000 0110

a = a^b; // 0000 0111

變數 資料型別 運算子

一 變數 1 概念 值可以變化的量 2 變數的基本組成 變數名 變數值 3 變數名 不能是關鍵字 關鍵字是有特殊含義的單詞,如var 4 變數的定義 var 變數名 5 變數的賦值 變數名 變數值 6 變數不能以數字開頭,可以用字母數字下劃線進行使用 二 常量 1 常量是變數的一種,但是常量的值一旦...

Java 資料型別 變數 運算子

現實生活中有各種檔案 文字 邏輯 資料的大小 精度展示需求。我們需要使用最恰當的方式去表示。根據現實需要選用最恰當的方式。無論是記憶體還是資料庫中。常見的乙個問題是乙個字段我們到底用什麼型別去表示。這個欄位最多會占用多少空間。選用合適的資料型別和位數。在高效能的這個角度來說,我們能夠降低記憶體的消耗...

python變數,資料型別,運算子

1.變數 python的變數不需要宣告,變數在被使用前必須賦值,變數被賦值後才會被建立。變數賦值和其他語言一樣,通過 賦值。例如 usr bin python3 a 1 整型變數 b 1.0 浮點型變數 cc my 字串 print a print b print cc 輸出結果如下 1.0my p...