最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++變量存儲的生命周期與作用域?qū)嵗a精講

 更新時間:2022年10月26日 16:39:31   作者:劃水貓  
這篇文章主要介紹了C++變量存儲的生命周期與作用域,從創(chuàng)建到消亡的完整過程,例如人從出生到死亡的整個過程就是一個生命周期。本文將通過示例為大家詳細講講,感興趣的可以學(xué)習(xí)一下

auto類型:非靜態(tài)的局部變量存儲類型都是auto,這些數(shù)據(jù)存儲在棧區(qū),不初始化變量的值時隨機的。C++中的auto還可以自動推導(dǎo)類型。生命周期:塊內(nèi) 作用域:塊內(nèi)

程序:

#include <stdio.h>
void test(void);
int main() {
// auto存儲類型
    auto b = 13;  // C++新功能,auto自動推導(dǎo)類型
	int a = 12;  // auto存儲類型的局部變量,存儲在函數(shù)棧幀中
	{
		int c = 11;
		printf("%d\n",a);
		printf("%d\n",c);
	}
	test();
	printf("%d\n",a);
    return 0;
}
void test(void) {
	int d = 13;  // auto存儲類型的局部變量,存儲在函數(shù)棧幀中
	printf("%d\n",d);
}

static類型:static靜態(tài)存儲類型的變量,可以作為局部變量和全局變量。作為全局變量的時候不能被外部文件所訪問,靜態(tài)變量只初始化一次,存儲在靜態(tài)區(qū)中。也可以用來修飾函數(shù),這樣外部文件無法調(diào)用該函數(shù)。生命周期:整個程序 作用域:全局靜態(tài)文件內(nèi)、局部塊內(nèi)

程序:局部靜態(tài)變量

#include <stdio.h>
#include <windows.h>
void test(void);
int main() {
	test();
	test();
	// printf("%d", a);  static作為局部變量,外面是訪問不了的
	system("pause");
	return 0;
}
// 局部靜態(tài)變量,存儲在靜態(tài)區(qū)中
void test(void) {
	static int a = 11;  // 只會被初始化一次
	a++;
	printf("%d\n", a);
}

程序:全局靜態(tài)變量

#include <stdio.h>
#include <windows.h>
void test(void);
static int b = 33;  // 全局靜態(tài)變量,外部文件無法訪問,存儲在靜態(tài)區(qū)中
int main() {
	test();
	printf("%d\n", b);
	system("pause");
	return 0;
}
void test(void) {
	printf("%d\n", b);
}

register類型:寄存器變量,存儲在cpu中不在內(nèi)存中,所以沒有地址??梢约涌煊嬎銠C訪問。但是在C++中如果一定要去訪問寄存器變量那么寄存器變量會被降級成普通變量。寄存器變量不能作為全局變量

程序:

#include <stdio.h>
// register int b = 12;  寄存器變量沒法作為全局變量
int main() {
// register變量沒有地址
	register int a = 12;
	printf("%d",a);
	printf("%p", &a);  // 強制訪問register變量,那么這個變量會變?yōu)閍uto類型
    for(register int i=0; i<1000; i++){  // 加快運行速度寫法,但是沒必要
    }
	return 0;
}

extern類型:可以訪問外部文件中的全局變量,只要在本文件中的變量前加上extern表示他是個外部變量。

程序:

extern.h

#ifndef _EXTER_H_
#define _EXTER_H_
#include <stdio.h>
void test1();
#endif

extern_test.cpp

#include "exter.h"
int c = 44;
int d = 55;  // 這里不要寫extern int d;這是錯誤的  ,也不要寫成extern int d=55這個是對的但是不推薦
void test1() {
	printf("extern_test_c_addr:%p\n", &c);
	printf("extern_test_d_addr:%p\n", &d);
}

man.cpp

#include <stdio.h>
#include <windows.h>
#include "exter.h"
void test(void);
extern int d;  //  extern拿到其他文件變量并作為本文件的全局變量
int main() {
// extern拿到其他文件變量并作為本文件的局部變量
	extern int c;
	printf("c=%d\n",c);
	c = 12;
	printf("c=%d\n",c);
	printf("d=%d\n",c);
	test();
	test1();
	printf("extern_test_c_addr:%p\n", &c);
	printf("main_d_addr:%p\n", &d);
	system("pause");
	return 0;
}
void test(void) {
	printf("test d=%d\n",d);
	//printf("c=%d\n", c);  局部變量訪問不了
}

到此這篇關(guān)于C++變量存儲的生命周期與作用域?qū)嵗a精講的文章就介紹到這了,更多相關(guān)C++生命周期與作用域內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • VC++中內(nèi)存對齊實例教程

    VC++中內(nèi)存對齊實例教程

    這篇文章主要介紹了VC++中內(nèi)存對齊的實現(xiàn)方法,具有很高的實用價值,需要的朋友可以參考下
    2014-08-08
  • C++?線段樹原理與實現(xiàn)示例詳解

    C++?線段樹原理與實現(xiàn)示例詳解

    這篇文章主要為大家介紹了C++?線段樹原理與實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • C++鏈表實現(xiàn)通訊錄管理系統(tǒng)

    C++鏈表實現(xiàn)通訊錄管理系統(tǒng)

    這篇文章主要為大家詳細介紹了C++鏈表實現(xiàn)通訊錄管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • 深入探討C++ OpenCV如何實現(xiàn)圖像矯正

    深入探討C++ OpenCV如何實現(xiàn)圖像矯正

    這篇文章主要為大家詳細介紹了C++ OpenCV如何實現(xiàn)簡單的圖像矯正功能,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-03-03
  • C語言報錯:Format String Vulnerability的多種解決方案

    C語言報錯:Format String Vulnerability的多種解決方案

    Format String Vulnerability(格式化字符串漏洞)是C語言中常見且嚴重的安全漏洞之一,它通常在程序使用不受信任的輸入作為格式化字符串時發(fā)生,本文將詳細介紹Format String Vulnerability的產(chǎn)生原因,提供多種解決方案,需要的朋友可以參考下
    2024-06-06
  • C++中與輸入相關(guān)的istream類成員函數(shù)簡介

    C++中與輸入相關(guān)的istream類成員函數(shù)簡介

    這篇文章主要介紹了C++中與輸入相關(guān)的istream類成員函數(shù)簡介,包括eof函數(shù)和peek函數(shù)以及putback函數(shù)還有ignore函數(shù),需要的朋友可以參考下
    2015-09-09
  • 詳解C++中賦值和輸入輸出語句的用法

    詳解C++中賦值和輸入輸出語句的用法

    這篇文章主要介紹了詳解C++中賦值和輸入輸出語句的用法,是C++入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-09-09
  • C語言之預(yù)處理命令的深入講解

    C語言之預(yù)處理命令的深入講解

    這篇文章主要給大家介紹了關(guān)于C語言之預(yù)處理命令的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • C語言超詳細講解猜數(shù)字游戲的實現(xiàn)

    C語言超詳細講解猜數(shù)字游戲的實現(xiàn)

    現(xiàn)在很多游戲都有抽獎抽卡的功能,其實這個就類似于猜數(shù)字,生成一個隨機數(shù),然后你去猜,猜對了就得獎。猜到一定次數(shù)就會保底。要實現(xiàn)猜數(shù)字的小游戲,首先是要讓程序生成隨機數(shù),這就要用到rand、srand和time這三個函數(shù),其次要了解時間戳
    2022-07-07
  • C語言結(jié)構(gòu)體鏈表和指針實現(xiàn)學(xué)生管理系統(tǒng)

    C語言結(jié)構(gòu)體鏈表和指針實現(xiàn)學(xué)生管理系統(tǒng)

    這篇文章主要介紹了C語言結(jié)構(gòu)體鏈表和指針實現(xiàn)學(xué)生管理系統(tǒng),包括學(xué)生檔案管理子系統(tǒng)和學(xué)生成績管理子系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06

最新評論

营山县| 铁岭县| 搜索| 惠东县| 福贡县| 如东县| 弥勒县| 铜川市| 林周县| 通江县| 天门市| 浦县| 巩义市| 五莲县| 潞城市| 曲阳县| 岱山县| 新龙县| 九江市| 建始县| 定州市| 监利县| 巴楚县| 曲阜市| 林芝县| 白城市| 博罗县| 盈江县| 广宗县| 专栏| 龙南县| 吴堡县| 玉林市| 马尔康县| 罗山县| 镇康县| 礼泉县| 杨浦区| 安乡县| 田林县| 上蔡县|