第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

全部開發(fā)者教程

C 語言入門教程

C 語言基礎(chǔ)教程
01 C 語言簡介 02 C 語言的程序結(jié)構(gòu) 03 C 語言的編譯 04 C 語言的標(biāo)準(zhǔn) 05 C 語言中的注釋 06 C 語言中的變量 07 C 語言中的變量類型 08 C 語言的常量 09 C 語言的輸入與輸出 10 C 語言中的 printf() 格式輸出 11 C 語言中的類型轉(zhuǎn)換 12 C 語言中的運(yùn)算符 13 C 語言中的算數(shù)運(yùn)算符 14 C 語言中的位運(yùn)算符 15 C 語言中的邏輯運(yùn)算符 16 C 語言中的三目運(yùn)算符 17 C 語言中的分支結(jié)構(gòu) 18 C 語言中的多重分支 19 C 語言中的分支嵌套結(jié)構(gòu) 20 C 語言中的循環(huán)結(jié)構(gòu) 21 C 語言中的 while 循環(huán) 22 C 語言中的 do-While 循環(huán) 23 C 語言中的 for 循環(huán) 24 C 語言中的多重循環(huán)嵌套 25 循環(huán)實(shí)戰(zhàn),打印九九乘法表 26 C 語言中的break和continue 27 C 語言中的 if 語句 28 C 語言中的 switch/case 語句 29 C 語言中的函數(shù) 30 C 語言函數(shù)的定義和聲明 31 C 語言中函數(shù)的參數(shù)傳入類型 32 C 語言中的 main() 函數(shù)參數(shù) 33 make 工具 makefile 34 C 語言中的數(shù)組 35 C 語言中的多維數(shù)組 36 數(shù)組的練習(xí) 37 C 語言中的字符串 38 C 語言中的字符串函數(shù) 39 C 語言字符串練習(xí) 40 C 語言中的指針 41 C 語言中的 struct 42 C 語言中的 union 43 C 語言中的 maclloc free() 44 C 語言中的 enum 45 整體練習(xí)-學(xué)生管理系統(tǒng)

C 語言中的變量類型

對于 C 語言的變量類型這里有兩種說法:

一種是只包含基礎(chǔ)的變量類型,如整數(shù)型,浮點(diǎn)型等;另外一種則是在上述類型的基礎(chǔ)上還包含了一些用戶可以定義的復(fù)合的類型,如 array,structure 等等。

我們這里只介紹大家通常意義上所認(rèn)識的前一種基本的 C 語言數(shù)據(jù)類型。更為復(fù)雜的這些數(shù)據(jù)組合的結(jié)構(gòu),我們會在后面單獨(dú)列出。

1. 變量類型

因?yàn)?C 語言與需要編譯之后才能執(zhí)行,所以需要對變量指定類型后才能使用。因?yàn)?C 語言會對不同的數(shù)據(jù)類型分配不同的內(nèi)存大小,這就是為什么 C 語言需要指定數(shù)據(jù)類型,而諸如 PHP, Python 這樣的語言不需要指定。指定大小的好處是可以讓程序處理起來更快,內(nèi)存的開銷更小。

變量類型列表

類型 存儲長度 數(shù)值范圍
char 1 byte -128 to 127
unsigned char 1 byte 0 to 255
signed char 1 byte -128 to 127
int 4 bytes -2,147,483,648 to 2,147,483,647
unsigned int 4 bytes 0 to 4,294,967,295
short 2 bytes -32,768 to 32,767
unsigned short 2 bytes 0 to 65,535
long 8 bytes -9223372036854775808 to 9223372036854775807
unsigned long 8 bytes 0 to 18446744073709551615

對于用科學(xué)計(jì)數(shù)法表示的類型還涉及到小數(shù)可以表示的精度,也就是有效數(shù)字。請看下面的表格:

類型 存儲長度 數(shù)值范圍 小數(shù)點(diǎn)后的位數(shù)
float 4 byte 1.2E-38 to 3.4E+38 6
double 8 byte 2.3E-308 to 1.7E+308 15
long double 10 byte 3.4E-4932 to 1.1E+4932 19

這里有一個程序可以輸出你的計(jì)算機(jī)中的不同數(shù)據(jù)結(jié)構(gòu)在內(nèi)存中所占用的內(nèi)存的位數(shù)。對于不同的硬件這個返回值是不同的。

實(shí)例演示
預(yù)覽 復(fù)制
復(fù)制成功!
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <float.h>

int main(int argc, char** argv) {

    printf("CHAR_BIT    :   %d\n", CHAR_BIT);
    printf("CHAR_MAX    :   %d\n", CHAR_MAX);
    printf("CHAR_MIN    :   %d\n", CHAR_MIN);
    printf("INT_BIT     :   %d\n", sizeof(int));
    printf("INT_MAX     :   %d\n", INT_MAX);
    printf("INT_MIN     :   %d\n", INT_MIN);
    printf("LONG_BIT    :   %d\n", sizeof(long));
    printf("LONG_MAX    :   %ld\n", (long) LONG_MAX);
    printf("LONG_MIN    :   %ld\n", (long) LONG_MIN);
    printf("SCHAR_BIT   :   %d\n", sizeof(signed char));
    printf("SCHAR_MAX   :   %d\n", SCHAR_MAX);
    printf("SCHAR_MIN   :   %d\n", SCHAR_MIN);
    printf("SHRT_BIT    :   %d\n", sizeof(short));
    printf("SHRT_MAX    :   %d\n", SHRT_MAX);
    printf("SHRT_MIN    :   %d\n", SHRT_MIN);
    printf("UCHAR_BIT   :   %d\n", sizeof(unsigned char));
    printf("UCHAR_MAX   :   %d\n", UCHAR_MAX);
    printf("UINT_MAX    :   %u\n", (unsigned int) UINT_MAX);
    printf("ULONG_BIT   :   %d\n", sizeof(unsigned long));
    printf("ULONG_MAX   :   %lu\n", (unsigned long) ULONG_MAX);
    printf("USHRT_MAX   :   %d\n", (unsigned short) USHRT_MAX);

    printf("Storage size for float :   %d \n", sizeof(float));
    printf("Strage size for double :   %d\n", sizeof(double));
    printf("FLT_MAX     :   %g\n", (float) FLT_MAX);
    printf("FLT_MIN     :   %g\n", (float) FLT_MIN);
    printf("-FLT_MAX    :   %g\n", (float) -FLT_MAX);
    printf("-FLT_MIN    :   %g\n", (float) -FLT_MIN);
    printf("DBL_MAX     :   %g\n", (double) DBL_MAX);
    printf("DBL_MIN     :   %g\n", (double) DBL_MIN);
    printf("-DBL_MAX    :   %g\n", (double) -DBL_MAX);
    printf("Float precision value   :   %d\n", FLT_DIG );
    printf("Double precision value  :   %d\n", DBL_DIG );

    return 0;
}
運(yùn)行案例 點(diǎn)擊 "運(yùn)行案例" 可查看在線運(yùn)行效果

將上面的程序粘貼到文本編輯器中,然后以 test.c 文件名保存。

在終端命令行中輸入

gcc test.c -o test

編譯完成后

./test

來執(zhí)行上面的程序。

我的樹莓派4上輸出的結(jié)果如下:

CHAR_BIT    :   8
CHAR_MAX    :   255
CHAR_MIN    :   0
INT_BIT     :   4
INT_MAX     :   2147483647
INT_MIN     :   -2147483648
LONG_BIT    :   4
LONG_MAX    :   2147483647
LONG_MIN    :   -2147483648
SCHAR_BIT   :   1
SCHAR_MAX   :   127
SCHAR_MIN   :   -128
SHRT_BIT    :   2
SHRT_MAX    :   32767
SHRT_MIN    :   -32768
UCHAR_BIT   :   1
UCHAR_MAX   :   255
UINT_MAX    :   4294967295
ULONG_BIT   :   4
ULONG_MAX   :   4294967295
USHRT_MAX   :   65535
Storage size for float :   4
Strage size for double :   8
FLT_MAX     :   3.40282e+38
FLT_MIN     :   1.17549e-38
-FLT_MAX    :   -3.40282e+38
-FLT_MIN    :   -1.17549e-38
DBL_MAX     :   1.79769e+308
DBL_MIN     :   2.22507e-308
-DBL_MAX    :   -1.79769e+308
Float precision value   :   6
Double precision value  :   15

這臺單板計(jì)算機(jī)的處理器是 arm64。

在樹莓派2上的輸出結(jié)果如下:

CHAR_BIT    :   8
CHAR_MAX    :   255
CHAR_MIN    :   0
INT_BIT     :   4
INT_MAX     :   2147483647
INT_MIN     :   -2147483648
LONG_BIT    :   4
LONG_MAX    :   2147483647
LONG_MIN    :   -2147483648
SCHAR_BIT   :   1
SCHAR_MAX   :   127
SCHAR_MIN   :   -128
SHRT_BIT    :   2
SHRT_MAX    :   32767
SHRT_MIN    :   -32768
UCHAR_BIT   :   1
UCHAR_MAX   :   255
UINT_MAX    :   4294967295
ULONG_BIT   :   4
ULONG_MAX   :   4294967295
USHRT_MAX   :   65535
Storage size for float :   4
Strage size for double :   8
FLT_MAX     :   3.40282e+38
FLT_MIN     :   1.17549e-38
-FLT_MAX    :   -3.40282e+38
-FLT_MIN    :   -1.17549e-38
DBL_MAX     :   1.79769e+308
DBL_MIN     :   2.22507e-308
-DBL_MAX    :   -1.79769e+308
Float precision value   :   6
Double precision value  :   15

這臺單板計(jì)算機(jī)的處理器是 arm32。

在我的筆記本電腦上運(yùn)行的結(jié)果如下:

CHAR_BIT    :   8
CHAR_MAX    :   127
CHAR_MIN    :   -128
INT_BIT     :   4
INT_MAX     :   2147483647
INT_MIN     :   -2147483648
LONG_BIT    :   8
LONG_MAX    :   9223372036854775807
LONG_MIN    :   -9223372036854775808
SCHAR_BIT   :   1
SCHAR_MAX   :   127
SCHAR_MIN   :   -128
SHRT_BIT    :   2
SHRT_MAX    :   32767
SHRT_MIN    :   -32768
UCHAR_BIT   :   1
UCHAR_MAX   :   255
UINT_MAX    :   4294967295
ULONG_BIT   :   8
ULONG_MAX   :   18446744073709551615
USHRT_MAX   :   65535
Storage size for float :   4
Strage size for double :   8
FLT_MAX     :   3.40282e+38
FLT_MIN     :   1.17549e-38
-FLT_MAX    :   -3.40282e+38
-FLT_MIN    :   -1.17549e-38
DBL_MAX     :   1.79769e+308
DBL_MIN     :   2.22507e-308
-DBL_MAX    :   -1.79769e+308
Float precision value   :   6
Double precision value  :   15

這臺電腦的處理器是 x86_64 架構(gòu),也就是大家在市場上買到的家用電腦的架構(gòu)。

大家可以看到這里有些數(shù)值是一樣的,但是有些卻不同。這就是計(jì)算機(jī)硬件上的差異,大家在使用 C 語言給硬件編程的時候一定要考慮到這點(diǎn)影響。

2. 小結(jié)

C 語言作為一種靜態(tài)語言,在變量使用之前,要確定變量的類型,用來分配在內(nèi)存中所需要占用的空間。

C 語言的類型包含了有符號型和無符號型兩大類。有符號類型可以表示復(fù)數(shù)。而無符號類型只能表示從 0 開始的數(shù)值。

不同的計(jì)算機(jī)硬件體系結(jié)構(gòu),使得數(shù)值的表示范圍會發(fā)生變化。對于數(shù)值范圍敏感的程序,一定要處理好變量類型,防止數(shù)值過大造成程序錯誤。