1. 類型變種寫法
在C語(yǔ)言中,除了有無(wú)符號(hào)關(guān)鍵字unsigned,還對(duì)應(yīng)有一個(gè)有符號(hào)關(guān)鍵字signed,只是通常省略不寫。此外,除了char,其他整型類型后面可以加上關(guān)鍵字int表示整型,通常也是省略不寫。下面是各種類型其他對(duì)應(yīng)寫法。
| No. | 類型 | 其他寫法 |
|---|---|---|
| 1 | char |
signed char |
| 2 | short |
signed short int、signed short、short int
|
| 3 | int |
signed int |
| 4 | long |
signed long int、long int、signed long
|
| 5 | long long |
signed long long int、signed long long、long long int
|
通常也使用unsigned表示unsigned int的簡(jiǎn)寫。
2. 數(shù)值常量表示
如何表示天文數(shù)字?
| 直徑 | 年齡 | |
|---|---|---|
| 地球 | 6371千米 | 45.5億年 |
| 太陽(yáng) | 1.392×106千米 | 45.7億年 |
| 銀河系 | 10萬(wàn)光年 | 80億年 |
| 宇宙 | 1600億光年 | 138.2億年 |
注:1光年 = 9.46×1012千米
試一下
int earth_diameter = 6371;
int earth_age = 4550000000;
int sun_diameter = 1392000;
int sun_age = 4570000000;
int light_year = 9460000000000;
int galaxy_diameter = 100000*light_year ;
int galaxy_age = 8000000000;
int universe_diameter = 1600000000000*light_year;
int universe_age = 138200000000;
printf("earth_diameter = %d\n",earth_diameter);
printf("earth_age = %d\n",earth_age);
printf("sun_diameter = %d\n",sun_diameter);
printf("sun_age = %d\n",sun_age );
printf("galaxy_diameter = %d\n",galaxy_diameter);
printf("galaxy_age = %d\n",galaxy_age);
printf("universe_diameter = %d\n",universe_diameter);
printf("universe_age = %d\n",universe_age);
沒(méi)有后綴的整數(shù)常量默認(rèn)為int,只能表示21億左右的數(shù)值,如果超過(guò)就會(huì)警告,執(zhí)行就會(huì)出錯(cuò),因?yàn)?code>int無(wú)法表示超出的數(shù)字。
- 整數(shù)常量后綴
| No. | 類型 | 后綴 |
|---|---|---|
| 1 |
L/l
|
long |
| 2 |
LL/ll
|
long long |
| 3 |
U/u
|
unsigned |
| 4 |
L/l與U/u組合 |
unsigned long |
| 5 |
LL/ll與U/u組合 |
unsigned long long |
int earth_diameter = 6371;
long long earth_age = 4550000000LL;
int sun_diameter = 1392000;
long long sun_age = 4570000000LL;
long long light_year = 9460000000000LL;
long long galaxy_diameter = 100000*light_year ;
long long galaxy_age = 8000000000LL;
long long universe_diameter = 1600000000000LL*light_year;
long long universe_age = 138200000000LL;
printf("earth_diameter = %d\n",earth_diameter);
printf("earth_age = %lld\n",earth_age);
printf("sun_diameter = %d\n",sun_diameter);
printf("sun_age = %lld\n",sun_age );
printf("galaxy_diameter = %lld\n",galaxy_diameter);
printf("galaxy_age = %lld\n",galaxy_age);
printf("universe_diameter = %lld\n",universe_diameter);
printf("universe_age = %lld\n",universe_age);
- 浮點(diǎn)數(shù)常量后綴
| No. | 類型 | 后綴 |
|---|---|---|
| 1 |
F/f
|
float |
| 2 |
F/f
|
long double |
沒(méi)有后綴的浮點(diǎn)數(shù)默認(rèn)為double。
- 科學(xué)記數(shù)法
表示方式:尾數(shù)部分e指數(shù)部分或者尾數(shù)部分E指數(shù)部分
使用科學(xué)計(jì)數(shù)法表示數(shù)字更加簡(jiǎn)單。
int earth_diameter = 6371;
long long earth_age = 4.55e9;
int sun_diameter = 1.392e6;
long long sun_age = 4.57e9;
long long light_year = 9.46e12;
long long galaxy_diameter = 1e5*light_year ;
long long galaxy_age = 8e9;
long long universe_diameter = 1.6e12*light_year;
long long universe_age = 1.382e11;
printf("earth_diameter = %d\n",earth_diameter);
printf("earth_age = %lld\n",earth_age);
printf("sun_diameter = %d\n",sun_diameter);
printf("sun_age = %lld\n",sun_age );
printf("galaxy_diameter = %lld\n",galaxy_diameter);
printf("galaxy_age = %lld\n",galaxy_age);
printf("universe_diameter = %lld\n",universe_diameter);
printf("universe_age = %lld\n",universe_age);
注意:universe_diameter出現(xiàn)負(fù)值。表示long long也裝不下這個(gè)數(shù)字(約為1026大于1012),可以使用double類型表示。
double universe_diameter = 1.6e12*light_year;
printf("universe_diameter = %f\n",universe_diameter);
輸出數(shù)據(jù)不容易閱讀,可以使用%e或%E以科學(xué)記數(shù)法輸出浮點(diǎn)數(shù)(注意:%e或%E不能用來(lái)輸出整數(shù))。
printf("universe_diameter = %e\n",universe_diameter);
科學(xué)計(jì)數(shù)法法除了可以表示極大數(shù),也可以表示極小數(shù),比如電子的直徑10-15m.
double electron_diameter = 10e-15;