記憶體:使用者儲存正在執行的程式資料ram(隨即儲存器)斷電後裡面的資料丟失
變數代表這一塊記憶體空間,我們可以通過變數名稱向記憶體存/取資料.有變數就不需要我們記憶複雜的記憶體位址了.
先向計算機申請一塊記憶體空間, 考慮往內存放的資料的型別
向記憶體申請一塊記憶體空間的語法:
資料型別變數名;
整數在我們c#中的資料型別叫int
int number://申請開闢一塊記憶體空間 =(符值預算符)
number=1000 //把1000放到number中
console.writeline(number); //不加引號是顯示number中的數值加引號是原封不動的輸出number
console.readkey();
c#中的其他資料型別
double 小數
decimal常用於財務上的
c#中常用的資料型別
int: 3 5 100 -10整數
double:3.14 10.5 -3.14 -5.0小數
char: 『a』『b』『c』字元型只能儲存乙個字元並且要求儲存的這個字元要求用單引號引起來
string: 「zhangsan」「李四」「計算機」「helloworld」」字串型別,就是把0個或1個或多個字元連線起來,字串要求用雙引號引起
decimal:儲存金錢 5.62
在c#開發環境中,直接寫乙個小數是double型別的,在乙個小數後面加乙個m/m,就告訴編譯器是乙個decimal型別
decimal d=5.55m;
decimal和double 範圍不一樣精度(有效位)不一樣
變數的宣告的三種方法
1 先宣告,後符值int a;a=3;
2定義變數時,直接符值int a=3;
3一次宣告多個同型別變數,多個變數名稱之間用逗號隔開,最後已分號結束
string zsname,李四name,;
intzsage=18,lsage=20;
變數一定要先宣告、後賦值、最後使用(取值、或者呼叫或寫)
變數的命名的規則
1必須以「字母」_或@符號開頭(第乙個字不能以數字開頭)
2後面可以跟任意「字母」、數字、下劃線
注意:1、你起的變數名不要與c#系統中的關鍵字重複(變藍色的字不能用)
2、在c#中,大小寫是敏感的
3、同乙個變數名不能重複定義,可以重複賦值
在方法中定義變數,要使用camel命名法。(首字母小寫,其餘單詞首字母大寫studentname,只有乙個單詞的話都是小寫,寫在main方法中的命名都用camel命名法)
如果涉及到英文縮寫時全部用大寫
pascal命名規範:每乙個單詞第乙個字母都大寫
在方法中定義變數,要使用camel命名法。main方法也是
變數可以重複賦值,一旦給乙個變數賦值了新值,那麼變數中的老值就不復存在了(覆蓋原有的值)
「+」在c#中有兩種意義:
1) 是數學中的加法的運算;兩邊參與加法運算的資料型別為數字型別,則「+」表示數學上的加法意義。
2) 是連線的意思;如果兩邊參與加號運算的資料,有乙個是字元型別,那麼加號另一邊就會隱式轉換為字串型別,那麼這個「+」就是連線的意義。
在console.writeline(「」)中,第乙個變數或字串中,可以使用佔位符。
佔位符由組成,數字由0開始編號,第乙個佔位符,第二個佔位符,第三個佔位符
console.writeline(「我叫,今年歲了,我的工資是元」,name,age,salary);
0永遠取的後面第乙個變數,1永遠取的後面第二個變數
用逗號分隔的是引數
console.writeline();有多個引數時,輸出的都是第乙個引數中的內容,從第二個引數開始,都是用來替換第乙個引數中的佔位符的值,所以從第二個引數開始,要不要輸出,就要看第乙個引數中有沒有佔位符。
在console.writeline中若使用佔位符就不需要加「引號」,如果要直接輸入變數把要直接顯示的引數當作乙個字串並且用加號連線。變數不需要加「引號「,如果開頭是乙個變數開頭也不用」引號「。
**號碼的型別一般用 string,一般不用int或long,一般需要運算的時候才用數值的型別手機的型號一般也用string
兩個值得交換要借助第三方的乙個臨時變數,不能直接交換,例如:
a=10,b=5使a=5,b=10
temp=a
a=bb=temp
如果直接寫a=5,b=10的話是重新賦值而不是交換
再學習一句話
console.readline();
用於讓使用者從鍵盤上輸入一句話,當程式執行到下面這句話,就會暫停,然後等待使用者從鍵盤上輸入一句,按回車程式將繼續執行。
只要讓使用者輸入的就是字串,哪怕是數字
如果想得到使用者輸入的內容,就需要定義乙個srting型別的變數,寫在下面這句話前面,接收使用者輸入的內容
console.readline();
string input=console.readline();
轉義字元:
什麼時候用,當我們需要在字串中輸入一些特殊字串中輸入一些特殊字元時,比如:半形引號,換行,退格,就需要使用轉義字元。
轉義字元是乙個字元,他由乙個\加乙個字母來組成具有特殊意義的乙個字元。在前面加
常用的轉義字元
\n表示換行
\b backspace退格
\t tab鍵由多個空格組成的乙個字元,具有行與行之間的對齊功能(用於上下數字對齊,由於上下數字位數不一樣用空格對不齊,用tab就可以解決8)
\\ 在需要輸入\ 兩個表示乙個\ 第乙個是轉義第二個是輸出的
@表示裡面的\不在轉義@在引號前加
1字串中如果有\,則不再理解為轉義符
2使字串可以換行
如果輸入了@還需要輸入引號的時候,兩個引號表示乙個
算術運算子及算術表示式
算術運算子:+-*/%(取餘數取模)
算術表示式:由算術運算子連線起來的式子,如1+1 a-b(變數ab前面已宣告並賦初值)
算術優先順序:先乘除後加減,有括號先算括號內的,相同級別的從左到右運算。
要求:參與的兩個運算元的型別必須相同,並且經過運算後的結果也與運算元的型別相同。
為什麼int型別乘以double型別結果是double型別??????
在算術表示式中,如果要改變計算機的優先順序,用小括號,必須成對出現
int a=10, b=3;
int mod=a%b; //a%b取餘數=1
double quo=a/b;
console.writeline(mod);
console.writeline(quo);
型別自動轉換規則
發生自動轉換(隱式轉換)的條件:
1) 參與運算的兩個資料型別必須相相容,,例如兩邊都是數字,
2) 必須一邊的資料型別表示範圍小,一邊的範圍大,並且把曉得轉向大的不丟失精度。
有效位小的向有效位大的轉沒有問題,反之不行。(在隱式轉換的時候最基本的是不丟失精度(有效位))
在自動轉換中,轉換是不會丟失精度的.如果丟失精度這個轉換肯定不會自動完成經常見到的就是,參與運算的兩個運算元,乙個是int,乙個是double,那麼int型別會自動轉換成double int>>>double
如果乙個式子當中有個double型別,整個式子就被提公升為double型別.
強制型別轉換
只能相容的轉換,數字轉數字
語法:當需要丟失精度的轉換時(如從double3.14到int3的轉換,會丟失0.14的精度),系統是不會幫我們自動轉換的,需要我的的程式設計師來寫**完成轉換
轉換的語法為: (資料型別名)待轉換的值
int a=(int)3.14
輸出為3
把字串轉換成數字(整數)型別
int變數名=convert.toint32(待轉換的字元)
把字串轉換成數字(小數)型別
double 變數名=convert.todouble(待轉換的字元)
把待轉字串轉換成int型別後賦給變數
int a=10,b=3 cw(a.tostring()+b) 要把數字直接變成字串型別可以加.tostring()
C 中的變數
c 裡面已有的簡單資料型別有 32位機 整型 short 2個位元組 int 4個位元組 long 4個位元組 long long 8個位元組 浮點型 float 4個位元組 double 8個位元組 字元型 char 乙個位元組 其實我更願意將其理解成整型,因為字元就是ascii碼 0 127個整...
C 中的變數
1.全域性變數 函式外定義的變數叫全域性變數,當乙個程式由多個.cpp檔案構成的時候,在乙個.cpp檔案中宣告的全域性變數,在其他 cpp中使用時,需要加上extern說明語句。全域性變數預設置初始值為0。2.區域性變數 在函式體內或塊內定義的變數叫區域性變數。區域性變數在沒有明確賦初值的時候,其初...
C學習 C中的變數
c中的變數,從變數的作用域,即 從空間上,變數的使用範圍 可以分為全域性變數和區域性變數.從變數值存在的時間 即生存期 來分,可以分為靜態儲存方式和動態儲存方式.區域性變數 在乙個函式內部定義的變數,只在本函式內有效.需要注意的是 a main函式中的引數也是區域性變數,不會因為在main函式中定義...