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