数据类型 ( 以基本类型为主 )

0 前言:C语言 与 Java 数据类型的差别

C语言没有规定各种整数类型的 表示范围,但有默认值!
java规定了 17 种数据类型的范围
基本型 ( 或算术类型 ) 的数据类型分别是:

charshortshort intintlonglong intlong long、及对应无符号数据类型;
floatdoublelong double

分类

基本型
( 或算术类型 )
枚举类型
( 也是算术类型 )
void 类型派生类型
1 整数类型
2 浮点类型
离散整数其值不可用指针、数组、结构、共用体、函数类型

0.1 常量

整数常量

进制注意
2 进制0b、0B 开头
0b1010
8 进制必须 0 开头
045623
10 进制开头不能是 0,0 本身除外
198
16 进制必须 0x、0X 开头

浮点常量

两类结尾符号
float结尾是 F、f
double结尾是 D、d

若无结尾符号,则默认 double

转义字符

例子解释
\r光标定位至 当前行开头
\n换行至 下一行开头
\t光标移动至下一个制表符位置
\b退格符号,不删除!
\b\b是删除

1 空间、字节、取值范围

位数
个数
123456789101112
计数单位
100

101

102

103

104
十万
105
百万
106
千万
107
亿
108
十亿
109
百亿
1010
千亿
1011
0的个数01234567891011

short ~ long long 输入输出:

大于数据类型小于
3万 = 30000short
short int
40000 = 4万
109(十亿)int
long
long int
1010(百亿)
1018long long1019

float、double、long double 的输入:

数据类型小于等于
float108
double1017
long double1020

float、double、long double 的输出:

大于数据类型小于
1038float1039
10308double10308
104932long double104933

1.1 整型: 有符号(±) & 无符号(非负)

类型名所占空间
(位)
所占字节取值范围
科学计数法
取值范围
十进制普通数
char81- 27 ~ ( 27 - 1 )- 128 ~ 127
short
short int
162- 215 ~ ( 215 - 1 )- 32768 ~ 32767
( 3万,5位数 )
int
long
long int
324- 231 ~ ( 231 - 1 )-21 4748 3648 ~ 21 4748 3647
( 20亿,10位数 )
long long648- 263 ~ ( 263 - 1 )-922 3372 0368 5477 5808
~ 922 3372 0368 5477 5807
( 19位数 )
-------------------------------------------------------
unsigned char810 ~ ( 28 - 1 )0 ~ 255
unsigned short
unsigned short int
1620 ~ ( 216 - 1 )0 ~ 6 5535
( 6万,5位数 )
unsigned int
unsigned long
unsigned long int
3240 ~ ( 232 - 1 )0 ~ 42 9496 7295
( 40亿,10位数 )
unsigned long long6480 ~ ( 264 - 1 )0 ~ 1844 6744 0737 0955 1615
( 20位数 )

1.2 浮点型

下面3个类型均含有0

类型名所占空间
(位)
所占字节取值范围
float324负数范围
- 3.4E+38 ~ - 1.17E-38
- FLT_MAX(39位数) ~
- FLT_MIN
正数范围
1.17E-38 ~ 3.4E+38
FLT_MIN ~
FLT_MAX(39位数)
double648负数范围
- 1.797E+308 ~ - 2.225E-308
- DBL_MAX(309位数) ~
- DBL_MIN
正数范围
2.225E-308 ~ 1.797E+308
DBL_MIN ~
DBL_MAX(309位数)
long double12816负数范围
- 1.189E+4932 ~ - 3.36E-4932
- LDBL_MAX(4933位数) ~
- LDBL_MIN
正数范围
3.36E-4932 ~ 1.189E+4932
- LDBL_MAX(4933位数) ~
- LDBL_MIN

其中
x_MIN 和 x_MAX 均为正

浮点数数据类型最小值(正数)最大值(正数)
floatFLT_MINFLT_MAX
doubleDBL_MINDBL_MAX
long doubleLDBL_MINLDBL_MAX

他们具体数值(十进制,非科学计数法)
float:

FLT_MIN ( 370 后面有 89 位数 )
= 0.(370)
1175494350822287507968736537222245677818665556772087521508751706278417259454
7271728515625

FLT_MAX ( 小数点前有 39 位数 ) = 340282346638528859811704183484516925440.0

double:

DBL_MIN ( 3070 后面有 715 位数 )
= 0.(3070)
2225073858507201383090232717332404064219215980462331830553327416887204434813
9181958542831590125110205640673397310358110051524341615534601088560123853777
1882113077799353200233047961014744258363607192156504694250373420837525080665
0616658158948720491179968591639648500635908770118304874799780887753749949451
5804516050509153998565824708186451135379358049921159810857660519924333521143
5239014879569960959128889160299264151106346631339366347758651302937176204732
5631781485664350872122828637642044846811407613911477062801689853244110024161
4474216185671661505401542850847167529019031613227788967297073731233340869889
8317506783884692609277397797285865965494109136909540613646756870239867831529
0680984617210924625396728515625 

DBL_MAX ( 小数点前有 309 位数 ) =
1797693134862315708145274237317043567980705675258449965989174768031572607800
2853876058955863276687817154045895351438246423432132688946418276846754670353
7516986049910576551282076245490090389328944075868508455133942304583236903222
9481658085593321233482747978262041447231687381771809192998812504040261841248
58368.00

long double:
LDBL_MIN

LDBL_MIN ( 49310 后面有 11451 位数 )
= 0.(49310)
3362103143112093506262677817321752602598079344846471240108827229808742699390
7289670430927063650562228625019066688234732270901114717276781407474941951906
3172916672639148499858621889449306874093231258318669985982748497715447171847
2731360102097109969846313544087646920079723924148002689793031875014798262534
2102921480784734670183910844877343074218035130735386727359319586864183119594
4159523420216434811847249184459743427980577174328754015453870392084141992070
1695124560415024569275649406699538900247595247695317321765067573103181597138
5312169349464407147507251828183432509530216565672119543732021214291185065959
4579655535231160444487479276839276148565796523221628879056815878852523028984
3003839164543067501319028825538561964321713076214022903129343482836736176490
0794271003752441808130400922610625259498709247351358206365850547331123745239
5518656729064541950664136519968310168014268728856897845692120508105233761566
0310204777901450849407460913217202483761020953437447153656595362436183663394
6082424911061380079367029527780610132541872124406677743897837558036437063651
1023554192001496405593631700816098211233440018931158604244544902185892090931
2031458785755128247723416172679973144751244562241433024432859336911914912321
4659454020198195234127338829319770515266439445556551333025153546219948962126
3019648736942233945856762485813474339594894555320118768302317292499939565404
3357602989174799539683828730885077297612105022593337485827358263516187570266
8268432647422400903439025451769081518836647226939357684503518718183054484676
7378125952990349916379424190994484313857358673936834482891757174767747152950
2448284418703026550942908376837671679083090288991714985198105668838862953817
5350813073924850241761982971069079934093126248589311033958605807006335376068
2450623110929655867024744189930402906091548294741545104608249683029616459879
4199010259172385318059635342911531175176750541825296660617261190908563227918
2382622037182038155917151536557064323930065527802124259315988688238008389941
4770055610324366815753207716580020144833879672405691208601962176702215731669
2546964139026311226211000027492605212462700980980242177030389734720351730651
1257993983220353090003290577614339184453996856749789316419544155611174617068
4331995340343128620392384851548088542943144807507721906775352687034954011083
0321845744960087227923732927565593308898829201610043188582422959222684334086
7411491081529218857248536527272599801825035025484543165136370427135656153232
9374863606373168437212629434399652878082486789051820914281785444959173190608
1321062782993695196160760170233481620289508327097719298590617105386738353627
1149507801466868345084242373660483846435627042818388973527686755441778052280
4829000794167687036668534042210421687773014161377089928320877054040742278920
7952017664300516891757193028911734195342358174491566162092027286566997657425
7095946317997765927992765038156052214323139785516097259851277458363424307307
0437003345373650604618405478515181881451150600344640473789119791535739201566
3495955719396405630089074548777885797096703056628857886557192731590593164923
0971366752107722556294095349844862058270958818523950097214032381490066179019
1286189320947634608958274014659791763546437035680512762687166617180745685252
3733978910082750774720037752659936382432766788384909274210255390027775284192
4351567409490219300946090053353096591562571137209996852946815969078995970594
9299768947236695214891325575812009972780490461210070545857009991601042367596
2321076240444577270118023947164461379165829426790115493061621854709818303115
4591036158063705491889840374218499937862460219799036376016609743217164996242
3813371739824471050391847989976748006920010822824906360328060708741702949308
9375636827784090379116081127229460597625002813462540535071488357312195767966
1230473916403545696225655841886336222732765707425848227004142069438565178683
1147019848115754795571560969197496769555523219877533853863631356416674010059
6890106091499936630711638122519421561598229526803034610502635775887383529394
2637634559469958195003656898704056524410685345793821185493149998174459307040
2469487902126897533894219252715402394267204133054852642929122997978165986591
6793694569805553963381911018933702776030454189058993771243254936587148282329
4982799271853547153211935653208934743329138748703814792265578252665346815280
9890540661225714023747990051992106739802423318738768437113038700758728297559
5603295689679737461989219641760789264565547696836454614499387250864698898719
2967699352767109042777248450053634813858385706873092851680049322796107822710
0876428013686365787929128746138240048121600943703309737163118861757828021449
3832164937528828143415015697365456840050816829438276428624229751172427841065
7148634194429027102063631783133949266080134112638824833407341982939919289733
9224399512569491814141694813733922119737092655918610730152933605013688208193
1981659262888595329115840098074011293505980430898541950516120964937479168459
4260846929883965983701312884295598281794038506993708290342397624544850473778
7484250815718902706891729328026280006822529839720781410082266878039320875944
5669436076683674712035752398801999002658042185245490939298424278169385218456
5854957363667372369195647707418194325420630075129133928535344887744717061472
9978590995213304868205615484733616161282215575596088206685340418260925662863
0067855448307204411338760130234497754451154990945002027084010856091601896904
8199801049727015679399321112363226010696804239853019977629024632850566927266
3051575589745992093736919678467590327059136137276786454029038126684969467121
9249520989511727801989065680551864978457399815364290155364649182657250171987
6381266645056144961508224442641743500704899714103798702625997249541914410568
7366233729652115806446983384086028048467833106267423928539001948635994196504
4717579156400123794281387526686870243039196538869359696368705980438708332035
2110166915919924876724915616744282013801877455816464257023185942055109938289
3322953281407714662755217022793989567688930857073114113823051213479034702350
0626695330178149033363836386015067611963397090819849624356888191728383944970
3316444581247562052139720916211015165629106830807139702202622042424098224662
9095400366000635063326757924936987348062945460496242822865005811447754044351
8088570132208609417079660433122377572787422976821080516513695158600768397451
9913702454447297105597577079009193316452540220696513318099545080192750987197
0194685060972569628850188239532568676489829381201685488251732666034838254061
1184984718399467532874552668315895021925369323111739358474330692963125897390
2090678269834180874144142148067562577765792982425521267148319613750198163262
9149683399066125826552816024946130678855668982234016541673963930823520525702
2294174113712330252863445167497261049198320381964755768627498577307645810218
3961653968710236557178768045672808021242785302650267490870400641809455495238
4564880591491610288067927753066552225053080577974318753516110965067240460362
7756712879295255205302156836170166380809183616139654533472176032118606691084
9413030835901138069095698149877048016843334763927390211473397502078125803157
4394221876294767738267397330984405293058422590525326237468005180642257719525
9177585737453997864170307072657261330368740618998032103933249938922311688134
4721840238943584801398944396613713830251005454339327364217734169583114617969
3453573476207229452793148053925291713081040676821476934254869649923833855179
0252325067990767678426478789808205281008689255045296899335836349425819448058
7884260801531925398287960253426912717660738023953009275543383365917379836421
7497885704250769306375914365282154675777733337396995117081837256919438805168
4648830581498502685281367961161505375544153213651349062596592511796121015683
5124408644052153703499307205683864287019413498809036910467231873540413360389
9848531350176228922532769032490744103365624439677126733757482969810458620193
9762124409645193865157471275626378180670718115039901090785863452014979012752
0609177431625331314521160571892720122662945864971548865489098747343545555207
9616044838965795956130079730736913508641024312307358063482027443919296402135
1490646262537320707921925958932736878381640046074785416142004329324117577858
5920047019656533787829172005967985014865570261753421374255505845075060237227
2953133454701117090876143001320034869276894484362898573185901912674689464106
9529305378934736665320123678386350759159468404493037799150029052065404314149
3792685904913078251576428544682776887020568596143398488107710806552701460697
0913653410919260563752483070402113749139255519453383120566405982378239243780
9854219215564764178008697601259262818672885054005073583782382729158759600738
1396930971731695181639423202704472304227721426354289640452291987572373133398
7056035151628228744358548606966662208595806638451502685413480630942320198951
5446884355223076428075546262689580508263460571373424529916311092332112042353
3792717254305999019550744155136388971639764992261098999612957001529210796214
9788611793709047614972371779594267723654418111884649777931396568544883094934
6679238550670636748782409246423512182135206258179671183153424086902046205108
9194376149471856860252728093066614092681538581785022123388107041665451252951
1298401286590275273195984353401899721858734287624772967112315360067199207085
1253128741411803920645640348770459616049712324386854975144012691432402459644
9520810427185769193814815557839343048980895034010385523790761666908586328092
6371327344848323338760573258453452919273450376738473024149219721817103108158
6047000826151898669714473639663825952324325327477328122596101570389261266831
4611884902185938400468027559945281973949911586330305416503546771640142337823
2464326543367698487134622966903563589803417905296623744946707256477350735396
8048388903627018658313109264881690175464055993897359241732165309381140486791
0830533745179590200827299217077414983729836694677243542887374992253903453242
6825783899336417452039944674667467818544516513755735230994507751876490465255
2831666388940798612280562637676854944000535664157365731170317814197295191481
3700095541596488516554602889210209559325116482149274730422346257092919694079
4718022085472114432570350661578845789143191441799599522070190285489982322436
7633696775311719221321290396657532807952138514590455718875120828636515701251
9874430758911985241984434596021119723096171338672342017819462609637748634113
7629454401559724896662684875606853287997959962128321597261958454484393535265
8504722909633383026910291584012396637463871775563376413939395265503351335438
3279150418282371524276645361206188460779486639957883803864360217837876265174
3109271199328257130360462990790331967282012892194385688703963773623661255221
0723345901113700167441968452048346008834664843691114259051547492478315569590
0070268259803685968845339090609204805992552225847799546885381457333848011241
7860392177499219087675571626732225809226789280853129600806301776288076955439
5532455509399365743205779244166458102225069855436903932137246290373547685317
6116163262982964091359850452630935710399494974804433736578506807984703889139
2450172878782048386510284179341347651738441014081869127398985230747953568394
2700648795144711348353634446437843070711415441383852504365799113431345990841
5148690527128082306909459267068745812866123751472758384980280649224662257930
7875202174160652513472158284048870429657975600095757302323169139791207028844
4900778772674138944528407365965774855880267667375518446950911797881009092700
9838888848249243472182532852086153364329524084037103349259965330730389791953
4429164151739164937548797150871646953669007591739657589464465654688645899794
195598419589698924170306781888939440250396728515625

LDBL_MAX

LDBL_MAX ( 小数点前有 4933位数 ) = 
1189731495357231765021263853030970205169063322294624200440323733891737005522
9707226164102903365288828535456978074955773144274431536702884341981255738537
4367867359320070697326320191591828296152436552951064679108661431179063216977
8838896134786560600399148753433211454911160088679845154866512852340149773037
6000091254793939662231513836224178385427439178381387178058894875405751682263
4765923557697480511372564902088485522249479139937758502601177354918009979622
6026859508558883608159846900235645132346594476384939859276456284579661772930
4078066092291027150460853880879593277816229868275478307680800401506949423034
1172895777710033571401055977524212405734700738625166011082837911962300846927
7200965153500208474470792443848545912886723000619085126472111951361467527633
5195629275979572502780029807959041931396030214709970352764674455309220226796
5628099149823208332964124103850923918473478612192169721054348428704835340811
3042573002216421348917347174234800714880751002064390517234247656004721768096
4861079949434157034763206435586242074435044243805661360176088374781653890278
0957697597728686007148702828795556714140463261583262360276289631617397848425
4486860609948270867968048078702511858930838546584223040908805996294594586201
9037660484467909260022254105307759010657606713472001258464069570302571389609
8375799892695455305236856075868317922311363951946885088077187210470520395758
7480013143131444254943919940175753169339392366881856189129931729104252921236
8351599223220509980016771027840353601408292963981151228777681357060457893435
3545169653956125404884644716978689321167108722908808277835051822885764606221
8739702851655083720992349483334435228984751232753726636066213902281264706234
0753520717240586650795182173034637826313533937067749019501978416904418247380
6316282858685774143258116536404021840272491339332094921949842244273042701987
3044536620350262386957804682003601447291997123095530057206141866974852846856
1865148327159744812031219467516863793430961896151073300655524214851952017628
5859509105183947250286387163249416761380499631979144187025430270675849519200
8837915169401581740046711477877201459644461175204059453504764721807975761111
7208462736392796003396704700376133745095531841500737964126050479232516613548
4129188421134082301547330475406707281876350361733290800595189632520707167390
4547777129682265206225651439919376804400292380903112437912614776255964694221
9813751469670794468703580043925076594516183798118593920495440361149153107822
5107269148697980924094677214272701240437718740921675661363493890045123235166
8146089322400697993176017805338191849981933008410985993938760292601390911414
5260037202848721324119554242821018312042161044674046216353369005836646065911
5629876474552506814500393294140413149540067760295100596225302282300363147382
4681059648442441324864573137437595096416168048024129351876204668135636877532
8146755387988717718365128939471953350618850032676073543886733680020743878496
5701457609034985757124304510203873049485425670247933932280911052604153852899
4849203991091946129912491633289917998094380337879522093131466946149705939664
1523759492858909604899161219449899863848370224866722491489246784102061833646
2741696957630763248023558797524525373703543388296086275342774001633343405508
3537048507374544819754722228975281083020898682633020285259923084168054539687
9114182976299889645764827652875045628549242651652177507995162596692291149777
8896235667095662713848201819134832168799586365263762097828507009933729439678
4639879024914514222742527006363942327998483976739987154418554201562244154926
6530145155046854892586202760857618371297633587612153825651296335381416639495
1655600026415918655485005705261143195291991880795452239464962763563017858089
6692226406235382898535867595990647008385687123810329591926494846250768992258
4193054807636202150890221492205280698420183508405869384938154989094454619778
9302911357651677540623227829831403347327660395223160342282471752818181884430
4880921321933550869873395861276073670866652375555675803171490108477320096424
3187800700087973460329062789435537435644488519071916164551411557619393996907
6741515640282654366402676009508752394550734155613586793306603174472092444651
3532366647649735400851967040771103640538150073486891798364049570606189535005
0898409138268695350900667833244725787121966044152849248400418509328119089636
3417573989716659600075948780061916409485433875852065711654107226099628815012
3144377944008749301944744330784388995701842710004808305012177123560622895076
2690428568000477188931580893585155938631766529480890312677470296625451108615
4895839508779675546413794489596052797520987481383976257859210575628440175934
9324162148339565350189196811389091843795734703269406342890087805846940352453
4793980806742732362978871008671758025315613023560648787092598652884163509725
2953709111431720488774740553905400942537542411931794417513706468964386151771
8849867010341532542385911089624710885385808688837777258648564145934262121086
647588489260031762345960769508849149662444156604419552086811989770240

1.3 代码验证

1.3.1 思路

char ~ long long,甚至 float 和 double 的验证都很容易,表示他们范围的数计算机可以直接 计算 和 表示

但 long double 的验证就真有点让人头疼了
LDBL_MAX 和 LDBL_MIN:
计算机可以输出这个数,但 4933 位的数,我怎么用眼睛去准确验证?
思路1(效果最好!):将 它们 写入文件,把文件中数据复制下来,再写个读取字符串的代码就可以了
思路2:在程序中将他们转为字符串,再输出,但效果不好
效果见:https://blog.csdn.net/qq_40893824/article/details/105889122

注意:LDBL_MIN 的输出宽度!

LDBL_MIN:宽度最好取18000位,且不小于4933,因为小数部分前面有 4931 个 0。宽度取小了 或 不足够大 会影响输出效果!
无论是在控制台 输出( printf ) 还是 写入文件的( fprintf ),其宽度均18000!

	printf("LDBL_MIN = %.18000Lf\nLDBL_MAX = %.10Lf\n\n", LDBL_MIN, LDBL_MAX);
	
	if(strcmp(name,"LDBL_MIN") == 0)
		fprintf(fp, "%-18000.17000Lf\n\n", a) ;

1.3.2 代码

写文件 主代码

#include<bits/stdc++.h>
#define num 100000
using namespace std;

int length(char a[])
{
	int c = 0;
	while(a[c] != '\0')
		c++;
	return c;
}

void concat(char a[], char b[], char c[])
{
	int i, j;
	i = 0;
	while(i < length(b))
	{
		a[i] = b[i];
		i++;
	} 
	j = 0;
	while(j < length(c))
	{
		a[i] = c[j];
		i++;j++; 
	} 
	a[i] = '\0';
}

void LDRange(char str[], long double a, char name[]) 
{
	FILE *fp;
	char path1[4] = "./" ;
	char path[100];
	
	concat(path, path1, str);
	fp = fopen(path, "a+");
	if(fp == NULL)
	{
		cout<< str<< " can not open or can not append!"<< endl<< endl;
		exit(0);
	}
	fprintf(fp, "%s = \n", name);
	if(strcmp(name,"LDBL_MIN") == 0)
		fprintf(fp, "%-18000.17000Lf\n\n", a) ;
	else
		fprintf(fp, "%-1500.1200Lf\n\n", a) ;
	cout << "数字写入成功!" <<endl;
	fclose(fp);
}

int main()
{	
	cout << "sizeof(char) = " << sizeof(char) << endl;
	cout << "sizeof(short) = " << sizeof(short) << endl;
	cout << "sizeof(short int) = " << sizeof(short int) << endl;
	cout << "sizeof(int) = " << sizeof(int) << endl;
	cout << "sizeof(long) = " << sizeof(long) << endl;
	cout << "sizeof(long int) = " << sizeof(long int) << endl;
	cout << "sizeof(long long) = " << sizeof(long long) << endl << endl;
	
	cout << "sizeof(unsigned char) = " << sizeof(unsigned char) << endl;
	cout << "sizeof(unsigned short) = " << sizeof(unsigned short) << endl;
	cout << "sizeof(unsigned short int) = " << sizeof(unsigned short int) << endl;
	cout << "sizeof(unsigned int) = " << sizeof(unsigned int) << endl;
	cout << "sizeof(unsigned long) = " << sizeof(unsigned long) << endl;
	cout << "sizeof(unsigned long int) = " << sizeof(unsigned long int) << endl;
	cout << "sizeof(unsigned long long) = " << sizeof(unsigned long long) << endl << endl;
	
	cout << "char上下范围:" << endl;
	cout << "CHAR_MIN = " << CHAR_MIN << ", CHAR_MAX = " << CHAR_MAX << endl << endl;
	cout << "short上下范围:" << endl;
	cout << "SHRT_MIN = " << SHRT_MIN << ", SHRT_MAX = " << SHRT_MAX << endl << endl;
	cout << "int上下范围:" << endl;
	cout << "INT_MIN = " << INT_MIN << ", INT_MAX = " << INT_MAX << endl << endl;
	cout << "long上下范围:" << endl;
	cout << "LONG_MIN = " << LONG_MIN << ", LONG_MAX = " << LONG_MAX << endl << endl;
	cout << "long long上下范围:" << endl;
	cout << "LLONG_MIN = " << LLONG_MIN << ", LLONG_MAX = " << LLONG_MAX << endl << endl;
	
	cout << endl;
	cout << "unsigned char上限:" << endl;
	cout << "UCHAR_MAX = " << UCHAR_MAX << endl << endl;
	cout << "unsigned short上限:" << endl;
	cout << "USHRT_MAX = " << USHRT_MAX << endl << endl;
	cout << "unsigned int上限:" << endl;
	cout << "UINT_MAX = " << UINT_MAX << endl << endl;
	cout << "unsigned long上限:" << endl;
	cout << "ULONG_MAX = " << ULONG_MAX << endl << endl;
	cout << "unsigned long long上限:" << endl;
	cout << "ULLONG_MAX = " << ULLONG_MAX << endl << endl;
	
	
	cout << "sizeof(float) = " << sizeof(float) << endl;
	cout << "sizeof(double) = " << sizeof(double) << endl;
	cout << "sizeof(long double) = " << sizeof(long double) << endl << endl;
	
	cout << "float上下范围(正数):" << endl;
	cout << "FLT_MIN = " << FLT_MIN << ", FLT_MAX = " << FLT_MAX << endl;
	printf("FLT_MIN = %.150f\nFLT_MAX = %.10f\n\n", FLT_MIN, FLT_MAX);
	cout << "double上下范围(正数):" << endl;
	cout << "DBL_MIN = " << DBL_MIN << ", DBL_MAX = " << DBL_MAX << endl;
	printf("DBL_MIN = %.1100lf\nDBL_MAX = %.10lf\n\n", DBL_MIN, DBL_MAX);
	cout << "long double上下范围(正数):" << endl;
	cout << "LDBL_MIN = " << LDBL_MIN << ", LDBL_MAX = " << LDBL_MAX << endl;
	printf("LDBL_MIN = %.18000Lf\nLDBL_MAX = %.10Lf\n\n", LDBL_MIN, LDBL_MAX);
	
	char name[100] = "range.txt";
	char str[num];
	// float
	float a = FLT_MIN, b = FLT_MAX;
	float &p = a, &q = b;
	strcpy(str, "FLT_MIN");
	LDRange(name, p, str);
	strcpy(str, "FLT_MAX");
	LDRange(name, q, str);
	
	// double
	double a1 = DBL_MIN, b1 = DBL_MAX;
	double &p1 = a1, &q1 = b1;
	strcpy(str, "DBL_MIN");
	LDRange(name, p1, str);
	strcpy(str, "DBL_MAX");
	LDRange(name, q1, str);
	
	//long double
	long double a2 = LDBL_MIN, b2 = LDBL_MAX;
	long double &p2 = a2, &q2 = b2;
	strcpy(str, "LDBL_MIN");
	LDRange(name, p2, str);
	strcpy(str, "LDBL_MAX");
	LDRange(name, q2, str);
	
	system("pause");
	return 0;
}

运行结果:
https://blog.csdn.net/qq_40893824/article/details/106006812

求字符长度代码
这个在上面其实有,但要另开一个文件写这个代码,因为它的功能是验证文件结果的长度

#include<bits/stdc++.h>
#define num 1000000
using namespace std;
int main()
{
	char p[num] = "11754943508222875079687365372222456778186655567720875215087517062784172594547271728515625";
	int i = 0;
	while(p[i]!='\0')
		i++;
	cout << "i = " << i<< endl<< endl;
	system("pause");
	return 0;
}

1.4 类似差别

字节数:
short <= int <= long <= long long

1.4.3 12 和 12L

12 默认 int,12L 是 long,就是int 和 long 的区别

2 输入输出

2.1 字符格式 与 n 进制

来源:https://baike.baidu.com/item/格式字符/1460342

n 进制形式前缀
10 进制整数%d、%ld、%I64d = %lld
%ld:输出长整型数据
无前缀
浮点数%f/F、%lf/F、%Lf/F
指数%e/E
自动%g/G
自动选 f 或 e ( 选择占宽度较小的一种 ),不输出 0
8 进制%o0
16 进制%x/X0x 或 0X
2 进制0b 或 0B

无符号整数,把 d 换成 u,其它不变

字符:
单个字符:%c
字符串:%s

2.1.1 代码 - 验证无符号形式

#include<bits/stdc++.h> 
using namespace std;

int main()
{
	unsigned short b;
	unsigned short int c;
	unsigned int d;
	unsigned long e;
	unsigned long int f;
	unsigned long long g;
	
	scanf("%u", &b);
	printf("b(unsigned short) = %u\n\n", b);
	
	scanf("%u", &c);
	printf("c(unsigned short int) = %u\n\n", c);

	scanf("%u", &d);
	printf("d(unsigned int) = %6u\n\n", d);
	
	scanf("%lu", &e);
	printf("e(unsigned long) = %-12lu\n\n", e);

	scanf("%lu", &f);
	printf("f(unsigned long int) = %-12lu\n\n", f);

	scanf("%llu", &g);
	printf("e(unsigned long long) = %-20llu\n\n", g);
	
	scanf("%I64u", &g);
	cout << "e(unsigned long long %-20I64u) = "; 
	printf("%-20I64u\n\n", g); // printf - \%\I\64\d\ 
	
	system("pause");
	return 0;
}

2.1.2 进制转化 itoa()函数

char *itoa( 原数据, 转换后的字符串, 变成n进制) ;
n >= 2
#include<bits/stdc++.h>
#define num 100
using namespace std;

int main()
{	
	char d[num] = "!sa1s";
	char b1[num];
	itoa(d[0], b1, 2);
	printf("%c = %s \n\n\n",d[0], b1);
	
	int a = 123;
	char b2[num];
	itoa(a, b2, 2);
	printf("%d = %s \n\n\n",a, b2);
	
	system("pause");
	return 0;
}

2.2 各数据类型一般输入输出

	scanf("%d", &i);
	printf("%m.nd", i);
charintlonglong intlong long
输入scanf()%c%d%ld%ld%I64d(大写 I)
%lld(小写 l)
输出printf()%c%d%ld%ld%I64d(大写 I)
%lld(小写 l)
floatdoublelong double
输入scanf()%m.nf%m.nlf
(小写 l)
%m.nLf
输出printf()%m.nf%m.nf%m.nLf

易混淆提示:

%I64d (大写 I) %lld (小写 l)
%m.nlf (小写 l)

2.2.1 注意

1 printf() 均是各数据类型的范围
2 scanf() 的精度:
char - long long 是各数据类型的范围
float:最多8位
double:最多17位
long double:最多20位

2.2.2 代码验证

#include<bits/stdc++.h> 
using namespace std;

int main()
{
	
	char a;
	short b;
	short int c;
	int d;
	long e;
	long int f;
	long long g;
	
	float m;
	double n;
	long double p;
	
	scanf("%c", &a);
	printf("a(char) = %c\n\n", a);
	
	scanf("%d", &b);
	printf("b(short) = %d\n\n", b);
	
	scanf("%d", &c);
	printf("c(short int) = %d\n\n", c);

	scanf("%d", &d);
	printf("d(int) = %6d\n\n", d);
	
	scanf("%d", &e);
	printf("e(long) = %-12d\n\n", e);

	scanf("%ld", &f);
	printf("f(long int) = %-12ld\n\n", f);


	scanf("%lld", &g);
	printf("e(long long) = %-20lld\n\n", g);
	
	scanf("%I64d", &g);
	cout << "e(long long %-20I64d) = "; 
	printf("%-12I64d\n\n", g); // printf - \%\I\64\d\ 
	
	
	scanf("%F", &m) ;
	printf("m(float) = %-40.4F\n\n", m);
	
	scanf("%lF", &n);
	printf("n(double) = %-400.4F\n\n", n);
	
	scanf("%LF", &p);
	printf("p(long double) = %-5000.4LF\n\n", p);
	
	system("pause");
	return 0;
}

2.3 代码验证

#include<bits/stdc++.h>
using namespace std;

int main()
{
	double i = 123.123;
	
	cout << "%.1f :"<< endl;
	printf("%.1f\n\n", i); 
	cout << "%.3f :"<< endl;
	printf("%.3f\n\n", i); 
	cout << "%.4f :"<< endl;
	printf("%.4f\n\n", i); 
	cout << "%8.4f :"<< endl;
	printf("%8.4f\n\n", i); 
	cout << "%9.4f :"<< endl;
	printf("%9.4f\n\n", i); 
	cout << "%10.4f :"<< endl;
	printf("%10.4f\n\n", i); 
	
	return 0;
}

2.4 域宽控制

默认保留6位小数

%±m.nf:
(1) n:小数部分 n 位
(2) m:数字全部数位,在按照小数部分n位的情况下:
若 m <= 实际数位,忽略m,输出实际数
若 m > 实际数位,输出宽度为m的实际数,多出部分显示为空

m 和 n 是常数,不能是变量!
变量情况见:

±:-靠左; +靠右(默认)

2.4.1 域宽变量控制

1 域宽是变量;2 宏定义

域宽是变量:

	printf("%*.*f\n\n", m, n, i);

宏定义

#define print(width, type, value) printf("%"#width#type,(value))
print(10.8, f, i);

2.4.2 测试代码

#include<bits/stdc++.h>
#define print(width, type,value) printf("%"#width#type,(value))
using namespace std;

int main()
{
	
	int m, n;
	double i = 123.123;
	
	// 法 1 域宽变量 
	m = 10;
	n = 2;
	printf("%*.*f\n\n", m, n, i); 

	// 法 2 宏定义  域宽常量 
	print(10.3, f, i);
	cout<< endl<< endl; 
	
	system("pause");
	return 0;
}

2.5 另类输入

%[ ^\n ]:输入字符串时想带有空格,遇到换行符就结束输入
%[ a - z ]:只读字符a,b, … , y, z

2.5.1 %[ ^\n ]

#include<bits/stdc++.h> 
#define num 100
using namespace std;

int main()
{
	char str[num]; 
	
	scanf("%[^\n]", str);
	printf("%s\n\n", str); 
	getchar();
	
	scanf("%[^\n^'r']", str);
	printf("%s\n\n", str); 
	
	system("pause");
	return 0;
}

2.5.2 %[ a - z ]

%[ a - z ]含义
%[0-7]只读 0, 1, …, 6, 7
%[a-zA-Z]只读 大写小字母
%[a-b-4-8]只读 a, b, -, 4, … ,7, 8

测试代码:

#include<bits/stdc++.h> 
#define num 100
using namespace std;

int main()
{
	char str[num]; 
	
	scanf("%[0-7]", str); // 只读 0 - 7 
	printf("%s\n\n", str); 
	getchar();
	
	scanf("%[a-zA-Z]", str); // 只读 大小写字母 
	printf("%s\n\n", str); 
	getchar();
	
	scanf("%[a-b-4-8]", str); // 只读 a、b、-、4 - 8 
	printf("%s\n\n", str); 
	
	system("pause");
	return 0;
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_1403034144

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值