C語言入門之淺談數(shù)據(jù)類型和變量常量
首先我們來羅列一下C語言的基本數(shù)據(jù)類型(未提及的后續(xù)將在關(guān)鍵字專題講解):
類型名稱 | 所占字節(jié) |
char(字符型) %c | 2 |
short(短整形) %d | 2 |
int(整形) %d | 4 |
long int(長整形) %ld | 4 |
long long int(長整形) %lld | 8 |
float(單精度浮點(diǎn)型) %f | 4 |
double(雙精度浮點(diǎn)型) %lf | 8 |
字符型:用來儲(chǔ)存字符,如:'s','@';
整型:用來儲(chǔ)存整數(shù)(無符號(hào)有符號(hào)均可),如:899,-56;
浮點(diǎn)型:用來儲(chǔ)存小數(shù),如10.0,89.5;
為什么要?jiǎng)?chuàng)造出這么多種數(shù)據(jù)類型呢?因?yàn)橛?jì)算機(jī)的內(nèi)存是有限的,所以要將內(nèi)存盡可能的合理分配,避免不必要的空間浪費(fèi)。
在這里介紹一下sizeof 函數(shù),可以測量一個(gè)數(shù)據(jù)類型所占有的字節(jié)大小,具體使用案例如下。因?yàn)樽止?jié)大小是一個(gè)很小的的整數(shù),所以我選擇了用短整型來輸出。感興趣可以自己敲一下,編程學(xué)習(xí)是離不開實(shí)踐的
簡單介紹完C語言的數(shù)據(jù)類型后,我們來講解一下常量和變量。變量理解起來非常簡單,可以被改變的量就是變量,我們來著講解一下變量的作用域和生命周期。
1.變量的作用域:
指的是這個(gè)變量可以起作用的范圍,根據(jù)變量的作用域不同,可以把變量分為全局變量和局部變量
#include<stdio.h> int a=5; //在main函數(shù)外創(chuàng)建了一個(gè)全局變量并初始化 int main() { int b=6;//聲明了一個(gè)局部變量并初始化 return 0; }
這里面變量a的作用域是整個(gè)程序,而變量b的作用域只在main函數(shù)內(nèi)部,如果你再寫一個(gè)其他的函數(shù),想在里面引用b就會(huì)報(bào)錯(cuò),因?yàn)槌隽薭的作用域,而你卻可以隨意引用a,只要方式得當(dāng)。
2.變量的生命周期:
是指一個(gè)變量從被創(chuàng)建到被銷毀的周期,在變量的生命周期內(nèi),變量可以被使用。
全局變量的生命周期是整個(gè)程序,而局部變量的生命周期只是其作用的函數(shù)內(nèi),這與變量在內(nèi)存中被儲(chǔ)存的位置有關(guān)。全局變量被儲(chǔ)存在靜態(tài)區(qū),而局部變量則被儲(chǔ)存在棧區(qū)。
在C語言中常量有四種:
1.字面常量,如:100,‘v’;
這種常量通常用來給其他操作數(shù)賦值,如:int a=99999; char name='p';
2.define宏定義的標(biāo)識(shí)符常量
如:#define PI 3.1415926;
屬于整個(gè)程序前面的頭文件部分,如果用戶define了一個(gè)常量PI,在后續(xù)整個(gè)程序中PI的值都為3.1415926,是無法被修改的,強(qiáng)行修改編譯器會(huì)報(bào)錯(cuò)
3.const修飾的常變量
如:const int a=100;
值得一提的是這里的a雖然是變量,但卻被const賦予了常量屬性,無法被修改。
4.枚舉常量
enum,也是C語言的關(guān)鍵字之一,定義方式如下
enum sex { male, famale };
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
C++順序表實(shí)現(xiàn)圖書管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C++順序表實(shí)現(xiàn)圖書管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10C++代碼實(shí)現(xiàn)網(wǎng)絡(luò)Ping功能
這篇文章主要介紹了C++代碼實(shí)現(xiàn)網(wǎng)絡(luò)Ping功能,Ping命令被送到本地計(jì)算機(jī)的IP軟件,該命令永不退出該計(jì)算機(jī),本文給大家介紹的非常詳細(xì),需要的朋友參考下吧2021-08-08深入解析C++中的構(gòu)造函數(shù)和析構(gòu)函數(shù)
析構(gòu)函數(shù):在撤銷對象占用的內(nèi)存之前,進(jìn)行一些操作的函數(shù)。析構(gòu)函數(shù)不能被重載,只能有一個(gè)2013-09-09C語言棧的表示與實(shí)現(xiàn)實(shí)例詳解
這篇文章主要介紹了C語言棧的表示與實(shí)現(xiàn),對于數(shù)據(jù)結(jié)構(gòu)與算法的研究有一定的借鑒價(jià)值,需要的朋友可以參考下2014-07-07C語言實(shí)現(xiàn)旅游資訊管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)旅游資訊管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03C++的std::transform()的實(shí)現(xiàn)
在 C++ 標(biāo)準(zhǔn)庫中,std::transform() 是一個(gè)非常有用的算法函數(shù),它能夠?qū)⒔o定范圍中的每個(gè)元素進(jìn)行變換,并將變換后的結(jié)果存儲(chǔ)到另一個(gè)范圍中,本文就詳細(xì)的介紹一下具體用法,感興趣的可以了解一下2023-08-08Qt實(shí)現(xiàn)生成指定范圍內(nèi)隨機(jī)數(shù)與隨機(jī)字符串
這篇文章主要為大家詳細(xì)介紹了如何利用Qt實(shí)現(xiàn)生成指定范圍內(nèi)隨機(jī)數(shù)與隨機(jī)字符串,文中的示例代碼簡潔易懂,感興趣的小伙伴可以自己動(dòng)手嘗試一下2023-07-07