中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C語言關鍵字及運算符操作

發布時間:2020-06-22 22:46:43 來源:網絡 閱讀:724 作者:少年不在了 欄目:編程語言

1、數據類型與變量的本質

數據類型 :數據類型可以理解為固定內存大小的別名,是創建變量的模子
變量本質 :變量是一段實際連續存儲空間的別名,程序中通過變量來申請并命名存儲空間,通過變量的名字可以使用存儲空間
C語言關鍵字及運算符操作???C語言關鍵字及運算符操作

2、關鍵字分析

2.1auto,static,register分析

C語言中的變量可以有自己的屬性,在定義變量的時候可以加上“屬性”關鍵字,“屬性”關鍵字指明變量的特有意義
?auto:C語言中局部變量的默認屬性,編譯器默認所有的局部變量都是auto的 (棧 )
?static:指明變量的“靜態”屬性,同時具有“作用域限定符”的意義(靜態區 )
??static修飾的局部變量存儲在程序靜態區
??static的另一個意義是文件作用域標示符
???―static修飾的全局變量作用域只是聲明的文件中
???―static修飾的函數作用域只是聲明的文件中
?register關鍵字指明將變量存儲于寄存器中,只是請求寄存器變量,但不一定請求成功(存儲于CPU寄存器中 )
?register變量的必須是CPU寄存器可以接受的值,不能用&運算符獲取register變量的地址
2.2if,switch,do,while,for分析
?分支語句分析 -- if
??if語句用于根據條件選擇執行語句,else不能獨立存在且總是與它最近的if相匹配;
??else語句后可以接連其他if語句
??零值比較的注意點: bool型變量應該直接出現于條件中,不要進行比較;
??普通變量和0值比較時,0值應該出現在比較符號左邊;float型變量不能直接進行0值比較,需要定義精度
C語言關鍵字及運算符操作
 分支語句分析 -- switch
  switch對應單個條件多個分值的情形;每個case分支必須要有break,否則會導致分支重疊;
  default語句處理特殊情況
  case語句中的值只能是整型或字符型
  case語句排列順序分析:按字母或數字順序排列各語句; 正常情況放在前面,異常情況放在后面;default只用于處理真正的默認情況
C語言關鍵字及運算符操作
 循環語句分析:
  循環語句的基本工作方式:
   通過條件表達式判定是否執行循環體;條件表達式遵循if語句表達式的原則
  do,while,for的區別:
   do語句先執行后判斷,循環體至少執行一次;while語句先判斷后執行,循環體可能不執行;
   for語句先判斷后執行,相比while更簡潔
  break和continue的區別:
   Break表示終止循環的執行;continue表示終止本次循環體,進入下次循環執行
2.3void,extern,sizeof分析
 void修飾函數返回值和參數:
  如果函數沒有返回值,那么應該將其聲明為void型;如果函數沒有參數,應該聲明其參數為void;void修飾函數返回值和參數僅為了表示無
 void的意義:
  C語言沒有定義void究竟是多大內存的別名
  void指針的意義:
   C語言規定只有相同類型的指針才可以相互賦值;void*指針作為左值用于“接收”任意類型的指針;void*指針作為右值賦值給其它指針時需要強制類型轉換
C語言關鍵字及運算符操作
 extern意義:
  extern用于聲明外部定義的變量和函數;
  extern用于“告訴”編譯器用C方式編譯 C++編譯器和一些變種C編譯器默認會按“自己”的方式編譯函數和變量,通過extern關鍵可以命令編譯器“以標準C方式進行編譯”
C語言關鍵字及運算符操作
 sizeof:是編譯器的內置指示符,不是函數;用于“計算”相應實體所占的內存大小;sizeof的值在編譯期就已經確定!
2.4struct和union分析(存在字節對齊的問題)
struct中的每個域在內存中都獨立分配空間;union只分配最大域的空間,所有域共享這個空間
C語言關鍵字及運算符操作
union的使用受系統大小端的影響 :
C語言關鍵字及運算符操作
2.5enum和typedef分析
 enum是一種自定義類型;enum默認常量在前一個值的基礎上依次加1;enum類型的變量只能取定義時的離散值
 枚舉類型和#define的區別:
  #define宏常量只是簡單的進行值替換,枚舉常量是真正意義上的常量
  #define宏常量無法被調試,枚舉常量可以
  #define宏常量無類型信息,枚舉常量是一種特定類型的常量
C語言關鍵字及運算符操作
 typedef分析:
  typedef給已經存在的數據類型重命名;沒有產生新的類型;
  typedef重定義的類型不能進行unsigned和signed擴展
 typedef和#define的區別:
  typedef是給已有類型取別名;#define為簡單的字符串替換,無別名的概念
C語言關鍵字及運算符操作
2.6const和volatile分析
 const修飾變量:
  const修飾的變量是只讀的,其本質還是變量;
  const修飾的變量會在內存占用空間 ,本質上const只對編譯器有用,在運行時無用
 const修飾數組:const修飾的數組是只讀的;const修飾的數組空間不可被改變 (元素值不可修改)
C語言關鍵字及運算符操作
 const修飾指針:(左數右指)當const出現在*號左邊時指針指向的數據為常量,當const出現在*后右邊時指針本身為常量

            const int* p;              //p可變,p指向的內容不可變
            int const *p;              //p可變,p指向的內容不可變
            int* const p;              //p不可變,p指向的內容可變
            const int* const p;    //p不可變,p指向的內容不可變

 const修飾函數參數和返回值:
  const修飾函數參數表示在函數體內不希望改變參數的值
  const修飾函數返回值表示返回值不可改變,多用于返回指針的情形
C語言關鍵字及運算符操作
 volatile:告知編譯器編譯方法的關鍵字,不優化編譯
  volatile可理解為“編譯器警告指示字”;
  volatile用于告訴編譯器必須每次去內存中取變量值
  volatile主要修飾可能被多個線程訪問的變量;
  volatile也可以修飾可能被未知因數更改的變量
C語言關鍵字及運算符操作

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

隆安县| 南阳市| 葫芦岛市| 康保县| 泰宁县| 沾化县| 兰州市| 南宫市| 盐津县| 陆良县| 泰宁县| 青海省| 苍山县| 古浪县| 启东市| 祁连县| 化德县| 中方县| 额敏县| 黑龙江省| 区。| 油尖旺区| 襄汾县| 瑞安市| 嘉义市| 新乐市| 安徽省| 杭州市| 黄浦区| 大宁县| 临夏市| 西盟| 兴宁市| 明水县| 海伦市| 庆阳市| 万盛区| 二连浩特市| 高陵县| 赣榆县| 疏附县|