日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > > 充電吧
[導(dǎo)讀]字符串常量,我們經(jīng)常用到,但是它到底放在哪個(gè)存儲(chǔ)區(qū)呢?是“自動(dòng)存儲(chǔ)區(qū)”還是“靜態(tài)存儲(chǔ)區(qū)”中?比如:char?*pstr="hello?world!";這里,"hello world!"是一個(gè)字符串常量

字符串常量,我們經(jīng)常用到,但是它到底放在哪個(gè)存儲(chǔ)區(qū)呢?是“自動(dòng)存儲(chǔ)區(qū)”還是“靜態(tài)存儲(chǔ)區(qū)”中?

比如:


char?*pstr="hello?world!";

這里,"hello world!"是一個(gè)字符串常量,pstr是在棧中的變量。
我想問(wèn),字符串常量,在哪個(gè)內(nèi)存區(qū)域分配空間呢?

好像應(yīng)該不是在“棧區(qū)“分配空間吧!



一、預(yù)備知識(shí)—程序的內(nèi)存分配
一個(gè)由C/C++編譯的程序占用的內(nèi)存分為以下幾個(gè)部分
1、棧區(qū)(stack)

由編譯器自動(dòng)分配釋放 ,存放函數(shù)的參數(shù)值,局部變量的值等。其操作方式類似于數(shù)據(jù)結(jié)構(gòu)中的棧。
2、堆區(qū)(heap)

一般由程序員分配釋放, 若程序員不釋放,程序結(jié)束時(shí)可能由OS回收 。注意它與數(shù)據(jù)結(jié)構(gòu)中的堆是兩回事,分配方式倒是類似于鏈表。
3、全局區(qū)(靜態(tài)區(qū))(static)

全局變量和靜態(tài)變量的存儲(chǔ)是放在一塊的,初始化的全局變量和靜態(tài)變量在一塊區(qū)域, 未初始化的全局變量和未初始化的靜態(tài)變量在相鄰的另一塊區(qū)域。 程序結(jié)束后由系統(tǒng)釋放。
4、文字常量區(qū)?

常量字符串就是放在這里的。 程序結(jié)束后由系統(tǒng)釋放
5、程序代碼區(qū)

存放函數(shù)體的二進(jìn)制代碼。


二、示例程序 ?


int?a?=?0;?全局初始化區(qū)??
char?*p1;?全局未初始化區(qū)??
main()??
{??
	int?b;?棧??
	char?s[]?=?"abc";?棧??
	char?*p2;?棧??
	char?*p3?=?"123456";?123456