欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

一文教你快速了解C語(yǔ)言中的作用域和常量

 更新時(shí)間:2023年06月19日 10:33:59   作者:鴿芷咕  
作用域(scope)是程序設(shè)計(jì)概念,通常來(lái)說(shuō)一段程序代碼中所用到的名字并不總是有效/可用,下面這篇文章主要給大家介紹了關(guān)于如何快速了解C語(yǔ)言中的作用域和常量的相關(guān)資料,需要的朋友可以參考下

前言

哈嘍,各位鐵汁們好?。?今天來(lái)給大家?guī)?lái)的是初識(shí)C語(yǔ)言里面的作用域、常量。

這幾章主要帶大家簡(jiǎn)單認(rèn)識(shí)-一下C語(yǔ)言,俗話說(shuō)沒(méi)吃過(guò)豬肉,也見(jiàn)過(guò)豬跑。帶大家了解下C語(yǔ)言。可以讀懂C語(yǔ)言的簡(jiǎn)單程序,后期會(huì)給大家詳細(xì)介紹C語(yǔ)言。

一、變量作用域和生命周期

作用域

作用域(scope)是程序設(shè)計(jì)概念,通常來(lái)說(shuō),一段程序代碼中所用到的名字并不總是有效/可用的而限定這個(gè)名字的可用性的代碼范圍就是這個(gè)名字的作用域。

那么局部變量和全局變量的作用域的范圍是多少呢?

局部變量的作用域

局部變量的作用域是變量所在的局部范圍。
因?yàn)榫植孔兞恐辉谒鶎?duì)應(yīng)的代碼段生效,出了他所在的大括號(hào)就銷(xiāo)毀。
下面我們來(lái)看看這段代碼
int main()
{
	{
		int a = 6;
	}
	return 0;
}

像這個(gè)代碼就會(huì)報(bào)錯(cuò),因?yàn)?變量 a a a 只在他所在的大括號(hào)生效出去·就銷(xiāo)毀了。

int main()
{
	{
		int a = 100;
	}
	printf("%d\n", a);
	return 0;
}

像這個(gè)代碼就不會(huì)報(bào)錯(cuò),因?yàn)?變量 a a a 只在他所在的大括號(hào)包含的范圍生效,而里面的大括號(hào)也在這個(gè)范圍所以可以使用。

全局變量的作用域

前面介紹了全局變量的的生效范圍是全局, 在不同.c文件也可以使用。
有因?yàn)槲覀兂绦蚴莔ain()函數(shù)開(kāi)始
出main函數(shù)結(jié)束
所以:全局變量的作用域是整個(gè)工程。

生命周期

變量的生命周期指的是變量的創(chuàng)建到變量的銷(xiāo)毀之間的一個(gè)時(shí)間段

局部變量的生命周期

局部變量是進(jìn)局部范圍開(kāi)始創(chuàng)建,出了他的局部范圍就銷(xiāo)毀。
所以:

局部變量的生命周期是:進(jìn)入作用域生命周期開(kāi)始,出作用域生命周期結(jié)束。

全局變量的生命周期

由于我們?nèi)肿兞康淖饔糜蚴钦麄€(gè)工程
而程序是從進(jìn)入main( )函數(shù)開(kāi)始,出main( )函數(shù)結(jié)束。
那么是不是可以說(shuō):

全局變量的生命周期是:整個(gè)程序的生命周期。

二、常量

C語(yǔ)言中的常量分為以下以下幾種:

  • 字面常量
  • const 修飾的常變量
  • #define 定義的標(biāo)識(shí)符常量
  • 枚舉常量

2.1 字面常量

像我們直接寫(xiě)出來(lái)的
數(shù)字3 字符a 字符串abcd這些都是字面常量
下面我倆給大家演示一下

int main()
{
	3;
	3.15;
	'a';
	"abcd";
	return 0;
}

給大家解釋一下單引號(hào) ' '引起來(lái)的是字符。

雙引號(hào)“ ”引起來(lái)的是字符串。

2.2   const 飾的常變量

int main()
{
	//常屬性
	//這里的a是具有常屬性的,不能改變,但是本質(zhì)上還是變量
	const int a = 3;
	printf("%d\n", a);
	a = 10;
	printf("%d\n", a);
	return 0;
}

這里我們用const關(guān)鍵字修飾了變量a,使這個(gè)變量具有了常屬性。

常屬性就是不能被更改的屬性,從語(yǔ)法層面直接限制了這個(gè)變量

所以當(dāng)我們改變這個(gè)變量的時(shí)候程序就會(huì)給我們報(bào)錯(cuò),我們來(lái)看看!

他說(shuō)左值指定的是const的對(duì)象所以不能修改,給我們報(bào)錯(cuò)了

那么我問(wèn)大家一個(gè)問(wèn)題?

  • 我們一直在講變量和常量
  • 那么由變量用const修飾的常變量可以當(dāng)成常量用嗎?
  • 可以不可以實(shí)踐便知:來(lái)看下面這段代碼
int main()
{	//數(shù)組
	const int n = 10;
	int arr[n];
	return 0;
}

他給我們的報(bào)錯(cuò)是這樣的,我來(lái)給大家解釋一下:

arr數(shù)組【】里面必須輸入常量表達(dá)式
誒,是不是很奇怪。

我們明明已經(jīng)將變量 n,用const修飾成了常變量為什么他還提示我們輸入常量呢?

這說(shuō)明關(guān)鍵字const雖然把變量n修飾成了常變量。但是變量a本質(zhì)上還是變量所以不能被當(dāng)來(lái)常量使用。

1.1  #define 定義的標(biāo)識(shí)符常量

什么是 #define 定義的標(biāo)識(shí)符常量呢?

#define MAX 10000
//符號(hào)名是MAX  本質(zhì)上代表的數(shù)字是10000
int main()
{
	int a = MAX;
	int arr[MAX] = {0};
	printf("%c", a);
	return 0;
}

#define MAX 10000
這里#define定義了一個(gè)MAX常量

  • 符號(hào)名是MAX 本質(zhì)上代表的數(shù)字是10000
  • 這里代表的意思是10000本來(lái)是沒(méi)有什么意義的,
  • 但是我們需要一個(gè)最大值MAX,我們把10000定義成我們的最大值
  • 以后我們的最大值MAX代表的就是10000

所以我們賦給變量 a a a就是 10000 10000 10000這個(gè)數(shù)字

創(chuàng)建的數(shù)組 a r r [ M A X ] arr[MAX] arr[MAX],是有 10000 10000 10000個(gè)元素

ps:

雖然暫時(shí)還沒(méi)有給各位鐵汁講數(shù)組但這里先讓大家見(jiàn)識(shí)一下

后面會(huì)給各位鐵汁詳細(xì)講解數(shù)組,看完秒懂!

1.1  枚舉常量

這里只是給大家簡(jiǎn)單講解一下,后面會(huì)詳細(xì)講解

枚舉常量

枚舉 一一列舉

生活中有些值是可以一一列舉

性別:男、女、保密
三原色:red green blue
血型: o oo x xx

那么枚舉怎么定義呢?

int main()
{
	printf("%d\n", MALE);
	printf("%d\n", FEMALE);
	printf("%d\n", SECRET);
	return 0;
}

這里我們就定義了一個(gè)枚舉常量SEX,enum代表的是枚舉類(lèi)型

MALE代表的是枚舉——列舉的類(lèi)型

枚舉類(lèi)型的值是多少呢?

我們來(lái)看一下

int main()
{
	printf("%d\n", MALE);
	printf("%d\n", FEMALE);
	printf("%d\n", SECRET);
	return 0;
}

我們可以看到枚舉常量的默認(rèn)值是從0開(kāi)始依次遞增的。

枚舉類(lèi)型的值怎么修改?

相信各位鐵汁們,都想說(shuō)修改那不是很簡(jiǎn)單直接改值不就完了。

int main()
{
	enum SEX s = FEMALE;
	printf("%d\n", MALE);
	return 0;
}

但是大家可別忘,枚舉類(lèi)型他可是個(gè)常量。

怎么能這樣修改呢!

所以他肯定會(huì)給我們報(bào)錯(cuò)。

枚舉類(lèi)型的常量想修改,只能修改初始值

enum SEX
{
	MALE=4,
	FEMALE,
	SECRET
};

這里我們就把SEX這個(gè)枚舉類(lèi)型,MALE的初始值修改成了4

所以程序運(yùn)行的結(jié)果是

我們也可以給每一個(gè)枚舉常量單獨(dú)賦值

enum SEX
{
	//列出了枚舉類(lèi)型enum SEX的可能取值
	//枚舉常量
	MALE=4,
	FEMALE=8,
	SECRET=11
};

總結(jié)

好了今天主要是帶大家認(rèn)識(shí)變量和常量

總結(jié)一下今天學(xué)了:

  變量作用域
  變量的生命周期
  字面常量
  const 修飾的常變量
  #define 定義的標(biāo)識(shí)符常量
  枚舉常量

不知道大家掌握了沒(méi)有,希望對(duì)各位鐵汁有用呢!

到此這篇關(guān)于C語(yǔ)言中的作用域和常量的文章就介紹到這了,更多相關(guān)C語(yǔ)言作用域和常量?jī)?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 數(shù)組名不等于指針?sizeof()函數(shù)求數(shù)組大小錯(cuò)誤問(wèn)題及解決

    數(shù)組名不等于指針?sizeof()函數(shù)求數(shù)組大小錯(cuò)誤問(wèn)題及解決

    這篇文章主要介紹了數(shù)組名不等于指針?sizeof()函數(shù)求數(shù)組大小錯(cuò)誤問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • C++輕松實(shí)現(xiàn)字符串與字符數(shù)組的相互轉(zhuǎn)換

    C++輕松實(shí)現(xiàn)字符串與字符數(shù)組的相互轉(zhuǎn)換

    本文詳細(xì)介紹了如何在C++中通過(guò)c_str()和strcpy()函數(shù)將字符串轉(zhuǎn)換為字符數(shù)組,以及使用for循環(huán)、+運(yùn)算符、重載=和內(nèi)置構(gòu)造函數(shù)將字符數(shù)組轉(zhuǎn)換為字符串的方法,需要的朋友可以參考下
    2025-03-03
  • MacOS下C++使用WebRTC注意事項(xiàng)及問(wèn)題解決

    MacOS下C++使用WebRTC注意事項(xiàng)及問(wèn)題解決

    這篇文章主要介紹了MacOS下C++使用WebRTC注意事項(xiàng),對(duì)于iOS/macOS平臺(tái),開(kāi)啟openh264,去除test,使用一些命令可以輕松解決,下面小編給大家?guī)?lái)了問(wèn)題及解決方法,需要的朋友可以參考下
    2022-09-09
  • OpenCV鼠標(biāo)繪制矩形和截取矩形區(qū)域圖像

    OpenCV鼠標(biāo)繪制矩形和截取矩形區(qū)域圖像

    這篇文章主要為大家詳細(xì)介紹了OpenCV鼠標(biāo)繪制矩形和截取矩形區(qū)域圖像,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • C++小知識(shí):不要去做編譯器的工作

    C++小知識(shí):不要去做編譯器的工作

    今天小編就為大家分享一篇關(guān)于C++小知識(shí):不要去做編譯器的工作,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-01-01
  • C語(yǔ)言中如何獲取函數(shù)內(nèi)成員的值你知道嗎

    C語(yǔ)言中如何獲取函數(shù)內(nèi)成員的值你知道嗎

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言中如何獲取函數(shù)內(nèi)成員的值的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03
  • 用C語(yǔ)言獲取文件的大小示例分享

    用C語(yǔ)言獲取文件的大小示例分享

    在linux下獲取一個(gè)指定文件大?。ㄗ止?jié)為單位)的代碼。查了一下發(fā)現(xiàn)是使用系統(tǒng)調(diào)用stat來(lái)實(shí)現(xiàn),那么如何使用C語(yǔ)言或C++語(yǔ)言來(lái)寫(xiě)一個(gè)通用的函數(shù)來(lái)獲取指定文件大小的函數(shù)呢?
    2014-08-08
  • Visual?Studio?2022?安裝低版本?.Net?Framework的圖文教程

    Visual?Studio?2022?安裝低版本?.Net?Framework的圖文教程

    這篇文章主要介紹了Visual?Studio?2022?如何安裝低版本的?.Net?Framework,首先打開(kāi)?Visual?Studio?Installer?可以看到vs2022?只支持安裝4.6及以上的版本,那么該如何安裝4.6以下的版本,下面將詳細(xì)介紹,需要的朋友可以參考下
    2022-09-09
  • 使用?c++?在?windows?上定時(shí)執(zhí)行一個(gè)函數(shù)的示例代碼

    使用?c++?在?windows?上定時(shí)執(zhí)行一個(gè)函數(shù)的示例代碼

    這篇文章主要介紹了使用c++在windows上穩(wěn)定定時(shí)執(zhí)行一個(gè)函數(shù),本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07
  • C++ OpenCV實(shí)現(xiàn)圖像去水印功能

    C++ OpenCV實(shí)現(xiàn)圖像去水印功能

    本文將介紹如何使用OpenCV C++ 進(jìn)行簡(jiǎn)單圖像水印去除。我們?cè)诰W(wǎng)上download圖片時(shí),經(jīng)常因?yàn)榘鏅?quán)問(wèn)題有水印。本案例通過(guò)編寫(xiě)算法進(jìn)行簡(jiǎn)單水印去除。需要的可以參考一下
    2022-01-01

最新評(píng)論