網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
首先我們來(lái)羅列一下C語(yǔ)言的基本數(shù)據(jù)類(lèi)型(未提及的后續(xù)將在關(guān)鍵字專題講解):
類(lèi)型名稱 | 所占字節(jié) |
char(字符型) %c | 2 |
short(短整形) %d | 2 |
int(整形) %d | 4 |
long int(長(zhǎng)整形) %ld | 4 |
long long int(長(zhǎng)整形) %lld | 8 |
float(單精度浮點(diǎn)型) %f | 4 |
double(雙精度浮點(diǎn)型) %lf | 8 |
字符型:用來(lái)儲(chǔ)存字符,如:'s','@';
整型:用來(lái)儲(chǔ)存整數(shù)(無(wú)符號(hào)有符號(hào)均可),如:899,-56;
浮點(diǎn)型:用來(lái)儲(chǔ)存小數(shù),如10.0,89.5;
為什么要?jiǎng)?chuàng)造出這么多種數(shù)據(jù)類(lèi)型呢?因?yàn)橛?jì)算機(jī)的內(nèi)存是有限的,所以要將內(nèi)存盡可能的合理分配,避免不必要的空間浪費(fèi)。
在這里介紹一下sizeof?函數(shù),可以測(cè)量一個(gè)數(shù)據(jù)類(lèi)型所占有的字節(jié)大小,具體使用案例如下。因?yàn)樽止?jié)大小是一個(gè)很小的的整數(shù),所以我選擇了用短整型來(lái)輸出。感興趣可以自己敲一下,編程學(xué)習(xí)是離不開(kāi)實(shí)踐的
簡(jiǎn)單介紹完C語(yǔ)言的數(shù)據(jù)類(lèi)型后,我們來(lái)講解一下常量和變量。變量理解起來(lái)非常簡(jiǎn)單,可以被改變的量就是變量,我們來(lái)著講解一下變量的作用域和生命周期。
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)部,如果你再寫(xiě)一個(gè)其他的函數(shù),想在里面引用b就會(huì)報(bào)錯(cuò),因?yàn)槌隽薭的作用域,而你卻可以隨意引用a,只要方式得當(dāng)。
2.變量的生命周期:
是指一個(gè)變量從被創(chuàng)建到被銷(xiāo)毀的周期,在變量的生命周期內(nèi),變量可以被使用。
全局變量的生命周期是整個(gè)程序,而局部變量的生命周期只是其作用的函數(shù)內(nèi),這與變量在內(nèi)存中被儲(chǔ)存的位置有關(guān)。全局變量被儲(chǔ)存在靜態(tài)區(qū),而局部變量則被儲(chǔ)存在棧區(qū)。
在C語(yǔ)言中常量有四種:
1.字面常量,如:100,‘v’;
這種常量通常用來(lái)給其他操作數(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,是無(wú)法被修改的,強(qiáng)行修改編譯器會(huì)報(bào)錯(cuò)
3.const修飾的常變量
如:const int a=100;
值得一提的是這里的a雖然是變量,但卻被const賦予了常量屬性,無(wú)法被修改。
4.枚舉常量
enum,也是C語(yǔ)言的關(guān)鍵字之一,定義方式如下
enum sex { male, famale };
總結(jié)
原文鏈接:https://blog.csdn.net/qq_61832209/article/details/122412059
相關(guān)推薦
- 2023-04-19 Android使用gradle讀取并保存數(shù)據(jù)到BuildConfg流程詳解_Android
- 2023-07-10 解決flask (flask-restful)中文亂碼問(wèn)題
- 2022-03-15 feign.RetryableException: Read timed out executing
- 2022-07-30 注冊(cè)中心eureka的介紹及源碼探索
- 2022-12-25 Redis中AOF與RDB持久化策略深入分析_Redis
- 2021-12-07 android加載系統(tǒng)相冊(cè)圖片并顯示詳解_Android
- 2023-07-07 根據(jù)文件后綴名稱獲取contentType,其中Minio上傳文件會(huì)用到contentType
- 2022-08-23 Python比較兩個(gè)日期的兩種方法詳解_python
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門(mén)
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支