c語言的四種數據類型?生活中,我們最常見到的各種瓶子,瓶子既有大小、又有類型,不同的瓶子,容積不同,用途也不同;類比到編程世界,這就是我們接下來要談的數據類型,不同的數據類型,用途不同,能夠裝的數據大小也不同,接下來我們就來聊聊關于c語言的四種數據類型?以下内容大家不妨參考一二希望能幫到您!
生活中,我們最常見到的各種瓶子,瓶子既有大小、又有類型,不同的瓶子,容積不同,用途也不同;類比到編程世界,這就是我們接下來要談的數據類型,不同的數據類型,用途不同,能夠裝的數據大小也不同。
整型C語言中的整型可以分為兩大類:有符号整型和無符号整型,反映在計算機内部,也就是二進制位最高位不同,負數為1,正數為0,但是你們有知道計算機内部數的表示是用什麼樣的形式表示的嗎?暫時按住不講,有興趣的小夥伴,聯系我,我們來探讨一下~
不知道有沒有小夥伴,對C語言中的這些類型有沒有好奇過,為什麼是int表示整數類型呢?這到了考驗大家的英語水平來了,英語中integer單詞表示整數,C語言是老外發明的,因此大多命名都是采用英文的縮寫,不過這對我們學習編程無傷大雅,大家了解就好~但是多知道一點,也沒關系的哈.
廢話不多說,short int從單詞上也能猜到代表短整型,為什麼短,因為它長得矮呗,哈哈~,開個玩笑,因為它僅僅能表示裝的下2個字節,每個字節8個bit,因此它也僅僅能表示16個bit。下面我們用程序來看一下各整型能表示的字節個數。
#include<stdio.h>
int main(){
printf("sizeof(unsignedshortint):%d\n",sizeof(unsignedshort));
printf("sizeof(short int): %d\n", sizeof(short));
printf("sizeof(unsignedint):%d\n",sizeof(unsigned int));
printf("sizeof(int): %d\n", sizeof(int));
printf("sizeof(unsignedlong):%d\n",sizeof(unsignedlong));
printf("sizeof(long int): %d\n", sizeof(long int));
printf("sizeof(unsignedlonglong):%d\n",sizeof(unsignedlonglong));
printf("sizeof(long long): %d\n", sizeof(long long));
return0;
}
answer:
sizeof(unsigned short int): 2
sizeof(short int): 2
sizeof(unsigned int): 4
sizeof(int): 4
sizeof(unsigned long): 4
sizeof(long int): 4
sizeof(unsigned long long): 8
sizeof(longlong):8
short int能表示範圍: -32768~32767;unsigned short int:0~65535;對于其他類型,你知道它的表示範圍是多少嗎?知道是什麼怎麼計算出來的嗎?不懂的趕緊來私聊我~
字符型字符型用char表示,僅能裝的下8個bit,1個字節。有符号字符範圍為-128~127,無符号字符為0~255。
浮點類型浮點類型有三種類型,float、double及long double,其區别主要是精度範圍不同,其中float的精度有效位6,double的精度有效位15位,long double的精度有效位為19。那這三種類型,需要多少字節呢?我們同樣的可以使用sizeof來獲取他們的大小。
#include<stdio.h>
int main()
{
printf("sizeof(float):%d\n", sizeof(float));
printf("sizeof(double):%d\n", sizeof(double));
printf("sizeof(longdouble):%d\n",sizeof(longdouble));
return 0;
}
sizeof(float):4
sizeof(double):8
sizeof(long double):16
空類型使用符号void表示,該類型比較簡單。字面意思,什麼都不表示。對于函數返回值,表示無返回值。用在函數參數上,表示無參數。用在指針上,表示地址,不指定數據類型,可以強制類型轉換為指向任意大小數據結構的指針。
枚舉類型枚舉類型使用enum表示。企業業務開發中,一般用該類型指代不同的數值常量或類型,例如要表示路由器中不同的端口。
typedef enum {
PORT_VOID = 0,
PORT_OIU = 1,
PORT_TRUNK = 2,
// 新增端口從此處開始...
PORT_TOTAL = 255,
} PORT;
指針是編程中專業術語,一般在C/C 語言中出現,對于剛接觸編程的小朋友,概念比較抽象,不太好理解。我們可以簡單的理解為小區中房子的門牌号,就是方便尋址抽象出來的概念。
根據數據類型不同,可以有不同的指針類型,例如char *,int *,float *。
數組類型如果我們還拿瓶子舉例,夏天很熱,鹹魚小明去超市買了一提礦泉水(12瓶),那麼這12瓶類比在編程中,就表示數組,相同類型多個數據結構,能夠連續存儲多個數據的類型。例如:int array[12] 表示大小為12的整型數組,能夠存儲12個整型元素。
結構體類型編程語言是為了解決現實中的問題,數組已經很強大,但他也有缺陷,不能裝不同的類型數據,此時,結構體就上場,結構體就是為了讓我們定義自己的數據結構類型,使用關鍵詞struct标識。例如我們可以定義學生結構如下:
struct Student {
char name[10]; // 姓名
char sex[2]; // 性别
char studyNo[10]; // 學号
float height; // 身高
float weight; // 體重
short grade;// 年級
short class; // 班級
char tel[12]; // 聯系方式
} STU;
該類型使用關鍵詞union标識,共用體使用場合其實并不多,在企業中開發,我接觸比較多的就是協議開發中,會涉及的多一些,一般就是多個字段在不同場景下隻能出現一個,此時我們可以用共用體,節省内存,它一般與struct結合使用,單獨使用意義不大。
typedef Struct{
int data1;
float data2;
union {
char data3;
double data4;
};
char data[4];
} ST;
自定義函數類型一般要結合typedef來使用,我們可以定義某種類型聲明的函數。例如
// 定義了返回值為空,函數參數為空的函數類型func;
typedef void (*func) (void);
// 定義了返回值為int,函數具有兩個int參數的函數類型func1;
typedef int (*func1)(int,int);
// 使用
void getValue(void);
func = &getValue;
func();
每日猿碼
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!