所有的變量在內(nèi)存中都自己的存儲(chǔ)空間,該空間的編號(hào)就是內(nèi)存地址,可以通過(guò)運(yùn)算符來(lái)獲得變量地址,通過(guò)printf("%p")函數(shù)進(jìn)行輸出,%p表示按內(nèi)存地址格式輸出(16進(jìn)制)如:
成都創(chuàng)新互聯(lián)公司主要從事網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)萬(wàn)州,十余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):18982081108
#include?stdio.h
void?main()
{
char?c?;
char?ac[10]="hello";
struct?t?{
int?a,?b;
double?d;
}?st?;
printf("c's?address??=?%p\n",?c?);?//輸出一個(gè)字符類型變量的地址
printf("ac's?address?=?%p\n",?ac?);
printf("ac's?address?=?%p\n",?ac?);?//數(shù)組名本身就是一個(gè)地址,若按%p輸出,就會(huì)得到其地址
printf("ac's?address?=?%s\n",?ac?);?//按%s輸出,就會(huì)輸出地址中的字符串?dāng)?shù)據(jù)hello
printf("st's?address?=?%p\n",?st?);??//輸出一個(gè)結(jié)構(gòu)體類型變量的地址
}
首先,printf("i的地址為:%p",i);不是輸出地址,而是輸出i的值,但是會(huì)以16進(jìn)制輸出。
如果輸出i地址,應(yīng)該是 printf("i的地址為:%p",i);
而%d就是以十進(jìn)制輸出i的值
1、函數(shù)直接返回一個(gè)指針類型即返回地址。
2、C語(yǔ)言屬于高級(jí)編程語(yǔ)言。在C語(yǔ)言中一個(gè)函數(shù)不能返回局部地址即指針。
例:
int * func(void)
{
int a= 10;
int *p = a;
return p;
}
a變量的區(qū)域是func()函數(shù),在函數(shù)內(nèi)有效,出了函數(shù)就釋放了,此時(shí)p指向的是一個(gè)未知
地址,屬于錯(cuò)誤用法。
正確用法:
int *p = NULL;
int * func(void)
{
p = malloc(sizeof(int));
if(p!=NULL)
{
*p = 10;
}
return p;
}
C語(yǔ)言中要輸出地址時(shí)通常以16進(jìn)制的方式輸出
printf函數(shù)中要顯示16進(jìn)制數(shù)時(shí)用%x格式
綜上,要輸出某個(gè)值的地址可以寫為printf("%x",變量);若變量為指針時(shí),則應(yīng)寫為printf("%x",指針);
代碼示例如下,int a=5;a的地址為a;
拓展資料
C語(yǔ)言是一門通用計(jì)算機(jī)編程語(yǔ)言,廣泛應(yīng)用于底層開(kāi)發(fā)。C語(yǔ)言的設(shè)計(jì)目標(biāo)是提供一種能以簡(jiǎn)易的方式編譯、處理低級(jí)存儲(chǔ)器、產(chǎn)生少量的機(jī)器碼以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的編程語(yǔ)言。
盡管C語(yǔ)言提供了許多低級(jí)處理的功能,但仍然保持著良好跨平臺(tái)的特性,以一個(gè)標(biāo)準(zhǔn)規(guī)格寫出的C語(yǔ)言程序可在許多電腦平臺(tái)上進(jìn)行編譯,甚至包含一些嵌入式處理器(單片機(jī)或稱MCU)以及超級(jí)電腦等作業(yè)平臺(tái)。
二十世紀(jì)八十年代,為了避免各開(kāi)發(fā)廠商用的C語(yǔ)言語(yǔ)法產(chǎn)生差異,由美國(guó)國(guó)家標(biāo)準(zhǔn)局為C語(yǔ)言制定了一套完整的美國(guó)國(guó)家標(biāo)準(zhǔn)語(yǔ)法,稱為ANSI C,作為C語(yǔ)言最初的標(biāo)準(zhǔn)。 目前2011年12月8日,國(guó)際標(biāo)準(zhǔn)化組織(ISO)和國(guó)際電工委員會(huì)(IEC)發(fā)布的C11標(biāo)準(zhǔn)是C語(yǔ)言的第三個(gè)官方標(biāo)準(zhǔn),也是C語(yǔ)言的最新標(biāo)準(zhǔn),該標(biāo)準(zhǔn)更好的支持了漢字函數(shù)名和漢字標(biāo)識(shí)符,一定程度上實(shí)現(xiàn)了漢字編程。
C語(yǔ)言是一門面向過(guò)程的計(jì)算機(jī)編程語(yǔ)言,與C++,Java等面向?qū)ο蟮木幊陶Z(yǔ)言有所不同。
其編譯器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
C語(yǔ)言之所以命名為C,是因?yàn)?C語(yǔ)言源自Ken Thompson發(fā)明的B語(yǔ)言,而 B語(yǔ)言則源自BCPL語(yǔ)言。
1967年,劍橋大學(xué)的Martin Richards對(duì)CPL語(yǔ)言進(jìn)行了簡(jiǎn)化,于是產(chǎn)生了BCPL(Basic Combined Programming Language)語(yǔ)言。
20世紀(jì)60年代,美國(guó)ATT公司貝爾實(shí)驗(yàn)室(ATT Bell Laboratory)的研究員Ken Thompson閑來(lái)無(wú)事,手癢難耐,想玩一個(gè)他自己編的,模擬在太陽(yáng)系航行的電子游戲——Space Travel。他背著老板,找到了臺(tái)空閑的機(jī)器——PDP-7。但這臺(tái)機(jī)器沒(méi)有操作系統(tǒng),而游戲必須使用操作系統(tǒng)的一些功能,于是他著手為PDP-7開(kāi)發(fā)操作系統(tǒng)。后來(lái),這個(gè)操作系統(tǒng)被命名為——UNIX。
文章題目:c語(yǔ)言輸出函數(shù)的地址 c語(yǔ)言打印函數(shù)地址
轉(zhuǎn)載源于:http://www.yijiale78.com/article44/dddoghe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、網(wǎng)站建設(shè)、網(wǎng)站導(dǎo)航、網(wǎng)站設(shè)計(jì)、建站公司、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)