1. 程式人生 > >C語言的資料型別及範圍

C語言的資料型別及範圍

資料型別

序號 型別與描述
1 基本型別:它們是算術型別,包括兩種型別:整數型別和浮點型別。
2 列舉型別:它們也是算術型別,被用來定義在程式中只能賦予其一定的離散整數值的變數。
3 void 型別:型別說明符 void 表明沒有可用的值。
4 派生型別:它們包括:指標型別、陣列型別、結構型別、共用體型別和函式型別。

基本型別初始化預設值

資料型別 初始化預設值
int 0
char ‘\0’
float 0
double 0
pointer NULL

整數型別

位數 8 16 32 64
signed 127 32767 2147483647 9223372036854775807LL
unsigned 255 65535 4294967295U 18446744073709551615ULL
// 這些巨集定義的範圍值存在 stdint.h 中
#define INT8_MAX         127
#define INT16_MAX        32767
#define INT32_MAX        2147483647
#define
INT64_MAX 9223372036854775807LL
#define INT8_MIN -128 #define INT16_MIN -32768 #define INT32_MIN (-INT32_MAX-1) #define INT64_MIN (-INT64_MAX-1) #define UINT8_MAX 255 #define UINT16_MAX 65535 #define UINT32_MAX 4294967295U #define UINT64_MAX 18446744073709551615ULL
#include <stdio.h>
#include <stdint.h>

int main() {
    printf("%25d%25d%25d\n", INT8_MIN, INT8_MAX, UINT8_MAX);
    printf("%25d%25d%25d\n", INT16_MIN, INT16_MAX, UINT16_MAX);
    printf("%25d%25d%25u\n", INT32_MIN, INT32_MAX, UINT32_MAX);
    printf("%25lld%25lld%25llu\n", INT64_MIN, INT64_MAX, UINT64_MAX); /* 注意輸出格式控制 */
    return 0;
}
                     -128                      127                      255
                   -32768                    32767                    65535
              -2147483648               2147483647               4294967295
     -9223372036854775808      9223372036854775807     18446744073709551615

浮點型別

型別 儲存大小 值範圍 精度
float 4 位元組 1.2E-38 到 3.4E+38 6位小數
double 8 位元組 2.3E-308 到 1.7E+308 15 位小數
long double 16 位元組 3.4E-4932 到 1.1E+4932 19 位小數
#include <stdio.h>
#include <float.h>  /* Float型的常量儲存在這裡 */

int getLength(long double x) {
    int count = 0;
    while (x > 10000) {
        x /= 10000;
        count += 4;
    }
    int a = (int) x;
    while (a > 0) {
        count++;
        a /= 10;
    }
    return count;
}

int main() {
    printf("%20e%20e%20d\n", FLT_MIN, FLT_MAX, FLT_DIG); /* 科學計數法輸出 */
    printf("%20e%20e%20d\n", DBL_MIN, DBL_MAX, DBL_DIG);
    printf("%Lf\n", LDBL_MAX); /* 注意輸出格式控制 */
    printf("%20d\n", getLength(LDBL_MAX)); /* 計算最大的Long Double的整數位長度 */
    return 0;
}
        1.175494e-38        3.402823e+38                   6
       2.225074e-308       1.797693e+308                  15
1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.000000
                4933

void 型別

void 型別指定沒有可用的值。它通常用於以下三種情況下:

序號 型別與描述
1 函式返回為空:C 中有各種函式都不返回值,或者您可以說它們返回空。不返回值的函式的返回型別為空。例如 void exit (int status);
2 函式引數為空:C 中有各種函式不接受任何引數。不帶引數的函式可以接受一個 void。例如 int rand(void);
3 指標指向 void:型別為 void * 的指標代表物件的地址,而不是型別。例如,記憶體分配函式 void *malloc( size_t size ); 返回指向 void 的指標,可以轉換為任何資料型別。

浮點常量

浮點常量由整數部分、小數點、小數部分和指數部分組成,可以使用小數形式或者指數形式來表示浮點常量。
下面列舉幾個浮點常量的例項:

3.14159       /* 合法的 */
314159E-5L    /* 合法的 */
510E          /* 非法的:不完整的指數 */
210f          /* 非法的:沒有小數或指數 */
.e55          /* 非法的:缺少整數或分數 */

相關推薦

黑馬程式設計師—C語言資料型別不同型別常量表示方法

一、C語言中的資料型別 1.資料型別的分類 C語言中常用的資料類型從大的方面可以分為5大類,分別是:基本型別、構造型別、指標型別、空型別void和定義型別typedef。而具體到各大分類中又可以劃分為

C語言資料型別長度

資料型別的長度跟編譯器和系統有關,比如在windows下的32位編譯器下的資料型別位元組數: char :1個位元組char*(即指標變數): 4個位元組(32位的定址空間是2^32, 即32個bit,也就是4個位元組。) short int : 2個位元組 int:

C語言資料型別範圍

資料型別 序號 型別與描述 1 基本型別:它們是算術型別,包括兩種型別:整數型別和浮點型別。 2 列舉型別:它們也是算術型別,被用來定義在程式中只能賦予其一定的離散整數值的變數。 3 void 型別:型別說明

4. C語言 -- 資料型別和取值範圍

本部落格主要內容為 “小甲魚” 視訊課程《帶你學C帶你飛》【第一季】 學習筆記,文章的主題內容均來自該課程,在這裡僅作學習交流。在文章中可能出現一些錯誤或者不準確的地方,如發現請積極指出,十分感謝。 也歡迎大家一起討論交流,如果你覺得這篇文章對你有所幫助,記得

C語言資料型別儲存位置堆疊說明

一、預備知識—程式的記憶體分配一個由C/C++編譯的程式佔用的記憶體分為以下幾個部分1、棧區(stack)  由編譯器自動分配釋放 ,存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。2、堆區(heap)   般由程式設計師分配釋放, 若程式設計師不釋放

C語言 資料型別輸入輸出函式(2018.11.17)

基本資料型別 5個方式瞭解基本型別 1、符號 2、位元組數 3、資料範圍 4、表示方法 5、運算方法 記憶體空間分配給變數,不是型別 指標型別:指標變臉中只能存放地址 空型別:主要用於資料型別的轉換和定義函式型別 void指標是萬用指標,萬用=無用,多數用於型別轉換後使用 限定性流程

C語言資料型別,運算子與表示式

1.C語言的關鍵字 32個關鍵字: auto:自動宣告      break:跳出當前迴圈      case:開關語句分支               &nbs

c++基本資料型別長度

首先羅列一下C++中的資料型別都有哪些: 1、整形:int、long 2、字元型:char、wchar_t 3、布林型:bool 4、浮點型:float、double 5、指標 一、整形   int佔據作業系統一個記憶體單元的大小。long跟int相同  

c++基本資料型別範圍

1> 怎麼計算一個型別的範圍? 以前大學學的8086是16位的暫存器,現在32,64的都有了;那麼現在看看資料型別單位是位元組(8位)也是合理的,提高效能,便於位元組對齊,提高記憶體訪問效率。

一、學習筆記,C語言資料型別

目錄 資料型別 基本資料型別 資料型別 基本資料型別 bool型別 使用bool型別 需要引入<stdbool.h> 型別bool的值域 型別名

C語言資料型別表示式相關知識(Linux)

#include<stdio.h> int main(int argc,char**argv) { printf(“Hello Word\n"); printf(“argv[%d],%s\n”,i,argv[i]); return 0; } 計算

MySQL資料型別範圍用法一覽表

一、MySQL的資料型別 主要包括五大類: 整數型別:BIT、BOOL、TINY INT、SMALL INT、MEDIUM INT、 INT、 BIG INT 浮點數型別:FLOAT、DOUBLE、DECIMAL 字串型別:CHAR、VARCHAR、TINY TE

C語言資料型別深度探測

C語言中的資料型別: 基本型別 – 整數型別 – 浮點型別 構造型別 – 陣列型別 – 結構體型別 – 共用體(聯合)型別 指標型別 空型別(void)

C語言資料型別

整形 Name Description Size* Range*signed: Range*unsigned: char Character or small integer. 1byte -128 to 127

c#中資料型別轉換

值型別:(13種) a.值型別變數可以直接分配給一個值。它們是從 類 System.ValueType 中派生的。 b.值型別直接儲存其值 c. 值型別的例項通常是線上程棧上分配的(靜態分配),但 是在某些情形下可以儲存在堆中 d. 值型別總是分配在它宣告的地方:作為欄位時,跟隨其所 屬的變

有關c語言資料型別轉換之char,unsigned char,unsigned short

這是一道朗訊的筆試題(我把一些相關資料彙總了一下,希望大家能進來廣泛的探討,不甚感激!) #include <stdio.h> int main() {     char  ca;     unsigned char ucb;     unsigned shor

C語言------資料型別

C語言的資料型別有很多,為了突出主線,避免初學者一開始就因為接觸太多的資料型別陷入到繁瑣的語法當中,這裡只介紹整型和實數型。C語言程式處理的資料有常量和變數兩種形式。常量    在程式中不能改變的量。按著型別分為:整型常量(包括0在內)、實型常量、字元常量、字串常量、列舉常量

c語言資料型別與儲存

資料型別C語言中一般有以下常用的資料型別型別所佔位元組數取值範圍(unsigned取值範圍(signed)格式化輸出整形(int)2 or 4 16位機器是2,32位機器和64位機器是4 目前主流編譯器都是4位0~2^32-1-2^31~2^31-1%d短整形(short i

C語言資料型別的修飾符

概述:C語言操作物件是記憶體資源,對記憶體資源存放位置的限定 變數:在程式執行過程中其數值可以改變的資料 定義的一般形式: 儲存型別:資料型別變數名; 儲存型別:決定了變數的儲存位置 資料型別:決定了變數的儲存大小

c語言資料型別、運算子和表示式

資料型別   1.基本資料型別: 基本資料型別最主要的特點是,其值不可以分解為其他型別。也就是說,基本資料型別是 自我說明的 2.構造資料型別: 構造資料型別是根據已定於的一個或多個數據型別用構造的方法來定義的。也就是說, 一個構造型別的值可以分解為若干個“成員”或“元素