C語言筆記 第四課 型別轉換
第四課 型別轉換
型別之間的轉換
C語言中的資料型別可以進行轉換
強制型別轉換
隱式型別轉換
強制型別轉換
強制型別轉換的語法
(Type)var_name;
(Type)value;
強制型別轉換的結果
目標型別能夠容納目標值:結果不變
目標型別不能容納目標值:結果將產生截斷
注意:不是所有的強制型別轉換都能成功,當不能進行強制型別轉換時,編譯器將產生錯誤資訊。
4-1強制型別轉換分析
隱式型別轉換
編譯器主動進行的型別轉換
注意:
低型別到高型別的隱式型別轉換是安全的,不會產生截斷
高型別到低型別的隱式型別轉換時不安全的,將導致不正確的結果
表示式中的隱式型別轉換
隱式型別轉換的發生點:
算數運算式中,低型別轉換為高型別
賦值表示式中,表示式的值轉換為左邊變數的型別
函式呼叫時,實參轉換為形參的型別
函式返回值,return表示式轉換為返回值型別
安全的隱式型別轉換
4-2隱式型別轉換例項
強制型別轉換由程式設計師負責完成
轉換可能產生截斷
轉換不區分型別的高低
轉換不成功時,編譯器給出錯誤資訊
隱式型別轉換由編譯器自動完成
低型別向高型別的轉換是安全的
高型別向低型別的轉換是不安全的
標準C編譯器的型別檢查是比較寬鬆的,因此隱式型別轉換可能帶來意外的錯誤。
相關推薦
C語言筆記 第四課 型別轉換
第四課 型別轉換 型別之間的轉換 C語言中的資料型別可以進行轉換 強制型別轉換 隱式型別轉換 強制型別轉換 強制型別轉換的語法 (Type)var_name; (Type)value; 強制型別轉換的結果 目標型別能夠容納目標值:結果不變 目標型別不能容納目標值:結果將產生截斷
C語言基礎-第四課-數組與字符串
cat ant 隨機數 打印 第一個 長度 stdin 有效 borde 1 數組 1.1 一維數組定義與使用 int array[10];//定義一個一維數組,名字叫array,一共有10個元素,每個元素都是int類型的 array[0]
C語言筆記 第十三課 接續符和轉義符
第十三課 接續符和轉義符 接續符的意義 C語言最終的接續符(\)是指示編譯器行為的利器 是否是合法程式? 合法 13-1 初探接續符 接續符的使用 編譯器會將反斜槓剔除,跟在反斜槓後面的字元自動接續到前一行 在接續單詞時,反斜槓之後不能由空格,反斜槓的下一行之前也不能由
C語言筆記 第十課 struct和union分析
第十課 struct和union分析 C語言中的struct可以看做變數的集合 struct的問題: 空結構體佔用多大記憶體? 10-1 空結構體的大小 C語言中的灰色地帶,觀點一是空結構體無意義不能存在於C語言裡面(VC10.0 /BCC),觀點二是空結構體為空集合,空集合為
C語言筆記 第九課 const和volatile分析
第九課 const和volatile分析 const只讀變數 const修飾的變數是隻讀的,本質還是變數 const修飾的區域性變數在棧上分配空間 const修飾的全域性變數在全域性資料區分配空間 const只在編譯期有用,在執行期無用 const修飾的變數不是真的常量,它只是告
C語言筆記 第八課 goto 和void分析
第八課 goto 和void分析 遭人遺棄的goto 高手潛規則:禁用goto 專案經驗:程式質量與goto的出現次數成反比 最後的判斷:將goto打入冷宮 8-1 goto副作用分析 void的意義 void修飾函式返回值和引數 如果函式沒有返回值,那麼應該將其宣告為v
C語言筆記 第七課 迴圈語句
第七課 迴圈語句 迴圈語句分析 迴圈語句的基本工作方式 通過條件表示式判定是否執行迴圈體 條件表示式遵循if語句表示式的原則 do , while , for 的區別 do語句先執行後判斷,迴圈體至少執行一次 while語句先判斷後執行,迴圈體可能不執行 for語句先判斷
C語言筆記 第六課 分支語句
第六課 分支語句 if語句分析 if語句用於根據條件選擇執行語句 else不能獨立存在且總是與它最近的if相匹配 else語句後可以接連其他if語句 if語句中零值比較的注意點 bool型變數應該直接出現於條件中,不要進行比較 變數和0值比較時,0值應該出現在比較符號左
C語言筆記 第五課 變數屬性
第五課 變數屬性 C語言的變數屬性 C語言中的變數可以有自己的屬性 在定義變數的時候可以加上“屬性”關鍵字 “屬性”關鍵字指明變數的特有意義 語法:property type var_name; 例項:int main() { auto char i; register int
C語言筆記 第十四課 單引號和雙引號
第十四課 單引號和雙引號 C語言中的單引號用來表示字元字面量 C語言中的雙引號用來表示字串字面量 下面的程式片段合法嗎?三條語句都合法,1、2語句有警告 char* p1 = 1; //數字1 char* p2 = ‘1’; //字元1 char* p3 = “1”; //
斯坦福大學-自然語言處理入門 筆記 第四課 語言模型
一、介紹N-grams 1、概率語言模型 對每個句子給出一個概率,用以判斷機器翻譯中哪個句子是最佳的選擇,拼寫校準中哪個句子可能出現錯誤。 目標:計算句子或者是一系列單詞的概率
C語言筆記 第十八課 三目運算子和逗號表示式
第十八課 三目運算子和逗號表示式 三目運算子 三目運算子(a?b:c)可以作為邏輯運算的載體 規則:當a的值為真時,返回b的值;否則返回c的值 下面的程式執行結束後,a,b,c的值分別為多少? int a = 1; int b = 2; int c = 0; c = a<b
C語言筆記 第十七課 ++和-- 操作符分析
第十七課 ++和-- 操作符分析 ++,- -操作符的本質 ++和- -操作符對應兩條彙編指令 前置 變數自增(減)1 取變數值 後置 取變數值 變數自增(減)1 ++,- -操作符使用分析 int i = 0; (i++) + (i++) + (i++); 0+1+2=
C語言筆記 第十六課 位運算子分析
第十六課 位運算子分析 C語言中的位運算子 位運算子直接對bit位進行操作,其效率最高 位運算子 操作 & 按位與 I 按位或
C語言筆記 第十五課 邏輯運算子分析
第十五課 邏輯運算子分析 邏輯運算子&&,||和!真的很簡單嗎? 下面的程式執行結束後,i,j,k的值分別是多少? int i = 0; int i = 0; int i = 0; ++i || ++j && ++ 結果: i = 1 j = 0
C語言筆記 第十二課 註釋符號
第十二課 註釋符號 註釋是C語言最重要的工具,我們先看自己有沒有能力駕馭它,再討論有沒有必要深究。 註釋規則 編譯器在編譯過程中使用空格替換整個註釋 字串字面量中的//和/**/不代表註釋符號 /…/型註釋不能被巢狀 12-1 註釋規則 有趣的問題 你覺得 y=x/*p是
C語言筆記 第十一課 enum,sizeof,typedef分析
第十一課 enum,sizeof,typedef分析 列舉型別的使用方法 enum是C語言中的一種自定義型別 enum值是可以根據需要自定義的整型值 第一個定義的enum值預設為0 預設情況下的enum值是在前一個定義值的基礎上加1 enum型別的變數只能取定義時的離散值
斯坦福大學自然語言處理第四課 語言模型(Language Modeling)筆記
一、課程介紹 斯坦福大學於2012年3月在Coursera啟動了線上自然語言處理課程,由NLP領域大牛Dan Jurafsky 和 Chirs Manning教授授課:https://class.coursera.org/nlp/ 以下是本課程的學習筆記,以課程PPT/
C語言基礎-第五課-函數
多少 main函數 聲明 width 編程 sig borde cnblogs 一個人 1 函數 1.1 函數的原型和調用 在使用函數前必須定義或者聲明函數 double circle(double r); int main() { double l
CLR via C#學習筆記-第四章-類型基礎-命名空間和程序集
程序集 microsoft 集中 歧義 str 可能 ring 需要 idg 4.3 命名空間和程序集 使用using指令簡化命名空間 C#編譯器通過using指令提供這個機制,例如 using System.IO; using System.Text; 只需要在代碼中