日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言基本类型和存储类别

發布時間:2024/4/13 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言基本类型和存储类别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

基本類型

  • C語言的基本數據類型分為兩大類:整數類型和浮點數類型。不同的種類提供了不同的范圍和精度。
  • 關鍵字
    1. 創建基本數據類型要用到8個關鍵字:int、long、short、unsigned、char、float、double、signed(ANSI C)。
  • 有符號整數
    1. 有符號整數可以具有正值或負值。
    2. int是所有系統中基本整數類型。
    3. long或long int可儲存的整數應大于或等于int可儲存的最大數;long至少是32位。
    4. short或short? int整數應小于或等于int可儲存的最大數;short至少是16位。通常,long比short大。
    ??? 例如,在PC中的C DOS編譯器提供16位的short和int、32位的long。這完全取決于系統。
    7. C99標準提供了long long類型,至少和long一樣大,至少是64位。
  • 無符號整數
    1. 無符號整數只有 0 和正值,這使得該類型能表示的正數范圍更大。在所需的類型前面加上關鍵字unsigned:unsigned? int、unsigned? long、unsignedshort、unsigned long long。單獨的unsigned相當于unsigned int。
  • 字符
    1. 字符是如A、&、+這樣的印刷符號。根據定義,char類型的變量占用1字節的內存。過去,char類型的大小通常是8位。然而,C在處理更大的字符集時,char類型可以是16位,或者甚至是32位。
    2. 這種類型的關鍵字是char。一些實現使用有符號的char,但是其他實現使用無符號的char。ANSI C允許使用關鍵字signed 和 unsigned指定所需類型。從技術層面上看,char、unsigned char和signed char是3種不同的類型,但是char類型與其他兩種類型的表示方法相同。
  • 布爾類型(C99)
    1. _Bool是C99新增的布爾類型。它一個無符號整數類型,只能儲存0(表示假)或1(表示真)。包含stdbool.c頭文件后,可以用bool表示_Bool、ture表示1、false表示0,讓代碼與C++兼容。
  • 實浮點數和復浮點數類型
    1. C99識別兩種浮點數類型:實浮點數和復浮點數。浮點類型由這兩種類型構成。
    2. 實浮點數可以是正值或負值。C識別3種實浮點類型。float是系統中的基本浮點類型。它至少可以精確表示6位有效數字,通常float為32位。
    3. double(可能)表示更大的浮點數。它能表示比 float更多的有效數字和更大的指數。它至少能精確表示10位有效數字。通常,double為64位。
    4. long double(可能)表示更大的浮點數。它能表示比double更多的有效數字和更大的指數。復數由兩部分組成:實部和虛部。C99 規定一個復數在內部用一個有兩個元素的數組表示,第 1 個元素表示實部,第2個元素示虛部。有3種復浮點數類型。
    5. float _Complex表示實部和虛部都是float類型的值。
    6. double _Complex表示實部虛部都是double類型的值。
    7. long double _Complex表示實部和虛部都是long double類型的值。每種情況,前綴部分的類型都稱為相應的實數類型(corresponding realtype)。例如,double是double_Complex相應的實數類型。C99中,復數類型在獨立環境中是可選的,這樣的環境中不需要操作系統也可運行C程序。在C11中,復數類型在獨立環境和主機環境都是可選的。
    8. 有 3 種虛數類型。它們在獨立環境中和主機環境中(C 程序在一種操作系統下運行的環境)都是可選的。虛數只有虛部。這3種類型如下。
    9. float _Imaginary表示虛部是float類型的值。
    10. double _Imaginary表示虛部是double類型的值。
    11. long double _Imaginary表示虛部是long double類型的值。可以用實數和I值來初始化復數。I定義在complex.h頭文件中,表示
    12. i(即-1的平方根)。
    13. #include <complex.h> // I定義在該頭文件中
    14. double _Complex z = 3.0; // 實部 = 3.0,虛部 = 0
    15. double _Complex w = 4.0 * I; // 實部 = 0.0,虛部 = 4.0
    16. double Complex u = 6.0 – 8.0 * I; //實部= 6.0,虛部 = -8.0
    前面章節討論過,complex.h庫包含一些返回復數實部和虛部的函數。
  • 存儲類別

  • 變量的存儲類別取決于它的作用域、鏈接和存儲期。存儲類別由聲明變量的位置和與之關聯的關鍵字決定。定義在所有函數外部的變量具有文件作用域、外部鏈接、靜態存儲期。聲明在函數中的變量是自動變量,除非該變量前面使用了其他關鍵字。它們具有塊作用域、無鏈接、自動存儲期。以static關鍵字聲明在函數中的變量具有塊作用域、無鏈接、靜態存儲期。以static關鍵字聲明在函數外部的變量具有文件作用域、內部鏈接、靜態存儲期。
  • C11 新增了一個存儲類別說明符:_Thread_local。以該關鍵字聲明的對象具有線程存儲期,意思是在線程中聲明的對象在該線程運行期間一直存在,且在線程開始時被初始化。因此,這種對象屬于線程私有。

  • 注意,關鍵字extern只能用來再次聲明在別處已定義過的變量。在函數外部定義變量,該變量具有外部鏈接屬性。
  • 除了以上介紹的存儲類別,C 還提供了動態分配內存。這種內存通過調用 malloc()函數系列中的一個函數來分配。這種函數返回一個可用于訪問內存的指針。調用 free()函數或結束程序可以釋放動態分配的內存。任何可以訪問指向該內存指針的函數均可訪問這塊內存。例如,一個函數可以把這個指針的值返回給另一個函數,那么另一個函數也可以訪問該指針所指向的內存。
  • 摘自:CP6

    ?

    總結

    以上是生活随笔為你收集整理的C语言基本类型和存储类别的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。