新聞中心
c語(yǔ)言中取地址符和*有什么區(qū)別?
不都是取地址。
10年積累的成都網(wǎng)站制作、成都做網(wǎng)站經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有昌平免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
1,符號(hào)含義不同:是取地址運(yùn)算符,a為變量a的地址。
2,用法不同:聲明中 int x; ?x 是整型量。
語(yǔ)句中,x 是整型量x的地址。不是指針,才有。
語(yǔ)句中,x 是整型量x的值。
3,指向不同:*是指針運(yùn)算符,*p為指針變量p所指向的存儲(chǔ)單元中的內(nèi)容。而指針變量p中一般只存放地址。* 表示指針,例如: int *p; -- p 是指針,指向整型量。
語(yǔ)句中,*p 表示指針指向的整型量的值。
語(yǔ)句中,p 表示指針指向的地址。
語(yǔ)句中,沒(méi)有 p 形式,如果p是指針。
擴(kuò)展資料
*空指針,*野指針
在函數(shù)內(nèi)部對(duì)指針進(jìn)行賦值操作后,在函數(shù)執(zhí)行完畢后,該指針就成了一個(gè)空指針(變量從棧中彈出)。但是通過(guò)動(dòng)態(tài)地址分配(堆空間)的指針不會(huì)有上述問(wèn)題。
free(p)后釋放內(nèi)存的指針為野指針。
指針(pointer)是對(duì)數(shù)據(jù)對(duì)象或函數(shù)的一種引用。指針有多種用途,例如定義“傳址調(diào)用”函數(shù),它還可以實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu),例如鏈表和樹(shù)。
通常,管理大量數(shù)據(jù)的有效方法不是直接處理數(shù)據(jù)本身,而是使用指向數(shù)據(jù)的指針。例如,如果需要對(duì)大量的大型記錄進(jìn)行排序,對(duì)指向該記錄的指針列表進(jìn)行排序效率要比直接對(duì)記錄排序高得多,因?yàn)檫@樣無(wú)需在內(nèi)存中移動(dòng)數(shù)據(jù)。
類似地,如果需要把大型記錄傳入函數(shù),傳遞指向該記錄的指針會(huì)比直接傳遞記錄本身更經(jīng)濟(jì),即使函數(shù)不需要修改該記錄。
指針代表了一個(gè)對(duì)象或函數(shù)的地址和類型。如果一個(gè)對(duì)象或函數(shù)具有 T 類型,那么指向它的指針就具有一個(gè)衍生出的指向 T 的指針類型(pointer to T)。
例如,如果 var 是一個(gè) float 變量,那么表達(dá)式 var(其值是該 float 變量的地址)屬于指向 float 的指針類型,按照 C 語(yǔ)言表達(dá),就是 float* 類型。
指向任何 T 類型的指針也被簡(jiǎn)稱為 T 指針(T point)。因此,var 中地址運(yùn)算符會(huì)生成一個(gè) float 指針。
因?yàn)?var 沒(méi)有在內(nèi)存中移動(dòng)位置,所以表達(dá)式 var 是一個(gè)常量指針。然而,C 也允仵使用指針類型來(lái)定義變量。指針變量存儲(chǔ)的是另一個(gè)對(duì)象或函數(shù)的地址。
我們后面會(huì)進(jìn)一步討論指向數(shù)組和函數(shù)的指針。首先,看看如何聲明指向非數(shù)組對(duì)象的指針,語(yǔ)法如下:
類型 * [類型限定符列表] 名稱 [= 初始化器];
在聲明中,星號(hào)(*)表示“指向的指針”。標(biāo)識(shí)符“名稱”被聲明為一個(gè)對(duì)象,其對(duì)象類型為“類型”,也就是“指向‘類型’的指針”。類型限定符為可選擇項(xiàng),可能包含 const、volatile 和 restrict 的任意組合。
參考資料
百度百科——指針
c語(yǔ)言函數(shù)參數(shù)里的取地址符號(hào)是什么意思
就是找到這個(gè)變量的內(nèi)存地址,直接讀寫(xiě)例如:scanf("%d",a);就是找到a的地址,把讀入一個(gè)數(shù)寫(xiě)到a 的地址中在例如p=a;就是讓指針p指向a的內(nèi)存地址,這樣直接對(duì)內(nèi)存讀寫(xiě).有利于提高操作速度.
c語(yǔ)言函數(shù)參數(shù)列表中參數(shù)加取址符調(diào)用傳地址反而會(huì)報(bào)錯(cuò)
c 語(yǔ)言函數(shù) 形參 列表 中 可以是普通變量 或指針變量,不允許 加取址符。
c++ 語(yǔ)言函數(shù) 形參 列表 中 加取址符 的參數(shù) 叫 “引用”,c 不支持。
------
函數(shù) 調(diào)用 的實(shí)參 類型 要與 形參對(duì)應(yīng),只有 形參 為 指針變量 的 實(shí)參 才可以是 地址。
void f(int x, int *y){};
int a,b;
int *p;
p=a;
調(diào)用
可以是 f(b,a);
可以是 f(b,p);
不可以是 f(b,a);
不可以是 f(b,a);
不可以是 f(b,a);
不可以是 f(b,p);
不可以是 f(b,p);
不可以是 f(b,p);
(但愿回答不被封。)
c語(yǔ)言取地址符有什么用,為什么scanf一定要用&
取地址 就是把變量轉(zhuǎn)為指針, 起到傳地址調(diào)用函數(shù)的效果.
而C語(yǔ)言中函數(shù)傳參有兩種,傳值調(diào)用 和傳指針調(diào)用.
傳值調(diào)用時(shí), 被調(diào)函數(shù)中改變參數(shù)值不會(huì)影響主函數(shù).
只有傳指針調(diào)用, 才可以將參數(shù)值回傳給主函數(shù).
scanf中要根據(jù)輸入對(duì)參數(shù)賦值, 所以 必須傳指針調(diào)用.
C語(yǔ)言關(guān)于取地址符的問(wèn)題。
你好??!
1.地址就像你家的地址一樣,指針變量存放的就是你家的地址,要想到你家,必須找到存放你家地址的變量(針對(duì)指針而言),那就是指針。
2.要是變量是整型不是字符串?dāng)?shù)組名,那就的帶取地址符?。。?/p>
3. 是取地址符的,(但還有位于運(yùn)算),要是需要變量的地址就要加取地址符。
不理解,我們?cè)诮涣鳎。。?/p>
名稱欄目:c語(yǔ)言函數(shù)取地址符參數(shù),c語(yǔ)言中取地址符怎么用
當(dāng)前網(wǎng)址:http://fisionsoft.com.cn/article/dsidcoi.html