c語(yǔ)言中引用與指針的區(qū)別是什么
大家好,今天來(lái)為大家分享c語(yǔ)言中引用與指針的區(qū)別是什么的一些知識(shí)點(diǎn),和c語(yǔ)言中引用和指針區(qū)別的問(wèn)題解析,大家要是都明白,那么可以忽略,如果不太清楚的話(huà)可以看看本篇文章,...
大家好,今天來(lái)為大家分享c語(yǔ)言中引用與指針的區(qū)別是什么的一些知識(shí)點(diǎn),和c語(yǔ)言中引用和指針區(qū)別的問(wèn)題解析,大家要是都明白,那么可以忽略,如果不太清楚的話(huà)可以看看本篇文章,相信很大概率可以解決您的問(wèn)題,接下來(lái)我們就一起來(lái)看看吧!
文章目錄:
- 1、c語(yǔ)言中指針加不加*有什么區(qū)別
- 2、指針和引用的不同點(diǎn)和相同點(diǎn)
- 3、C語(yǔ)言中對(duì)指針變量的直接和間接引用怎么區(qū)別
- 4、指針與引用有什么區(qū)別
- 5、C++中指針與引用的區(qū)別
c語(yǔ)言中指針加不加*有什么區(qū)別
1、聲明及定義一個(gè)指針時(shí),需要用*表示標(biāo)識(shí)符是一個(gè)指針。比如 int *p;定義一個(gè)指針,p是int *類(lèi)型,這里的*主要說(shuō)明變量是指針類(lèi)型。作為間接訪(fǎng)問(wèn)運(yùn)算符 int a = 2;int *p = printf(%d\n, p, *p);以上面的例子來(lái)說(shuō):p:是指針,是一個(gè),它是int *類(lèi)型。
2、用在這里表示fun函數(shù)調(diào)用時(shí)需要的參數(shù)是一個(gè)char類(lèi)型的指針,也就是,這里可以理解為這是一個(gè)定義,定義一個(gè)char類(lèi)型的局部指針變量,如main函數(shù)里面調(diào)用時(shí),fun(s)將字符串的初始傳入fun函數(shù)。
3、加了星號(hào)說(shuō)明是指針類(lèi)型,是指這個(gè)指針變量可以訪(fǎng)問(wèn)該類(lèi)型的數(shù)據(jù),指針也是一種變量,只不過(guò)它儲(chǔ)存的是。一般變量?jī)?chǔ)存的是數(shù)據(jù)。通過(guò)指針可以間接訪(fǎng)問(wèn)數(shù)據(jù),它顯示C語(yǔ)言的靈活性,優(yōu)越性。
4、嚴(yán)格說(shuō)來(lái),指針什么時(shí)候都不帶*。int *p,那個(gè)*是int的,不是p的。但為了在int下聲明不是指針的變量,規(guī)定在每個(gè)指針變量前加一個(gè)*,以便編譯器識(shí)別,這就使好多人誤以為*是指針變量的了。
指針和引用的不同點(diǎn)和相同點(diǎn)
相同點(diǎn):引用和指針都是的概念,引用是一個(gè)內(nèi)存對(duì)象的別名,指針指向一個(gè)內(nèi)存對(duì)象,保存了這個(gè)對(duì)象的內(nèi)存。區(qū)別:引用不能為空,即不存在對(duì)空對(duì)象的引用,指針可以為空,指向空對(duì)象。引用必須初始化,指定對(duì)哪個(gè)對(duì)象的引用,指針不需要。
引用訪(fǎng)問(wèn)一個(gè)變量是直接訪(fǎng)問(wèn),而指針是間接訪(fǎng)問(wèn)。引用是一個(gè)變量的別名,本身不單獨(dú)分配自己的內(nèi)存空間,而指針有自己的內(nèi)存空間。引用在開(kāi)始的時(shí)候就綁定到了一個(gè)內(nèi)存空間(開(kāi)始必須賦初值),所以他只能是這個(gè)內(nèi)存空間的名字,而不能改成其他的。
★ 相同點(diǎn): 都是的概念;指針指向一塊內(nèi)存,它的內(nèi)容是所指內(nèi)存的;引用是某塊內(nèi)存的別名。
相同點(diǎn) **都是的概念**:無(wú)論是引用還是指針,都指向內(nèi)存中的。這意味著它們都允許訪(fǎng)問(wèn)和操作內(nèi)存中的數(shù)據(jù)。區(qū)別 **實(shí)體與別名**:引用是一個(gè)變量的別名,而指針是一個(gè)實(shí)體,可以直接通過(guò)操作指針來(lái)改變它所指向的。
C語(yǔ)言中對(duì)指針變量的直接和間接引用怎么區(qū)別
1、在作為函數(shù)參數(shù)方面,引用作為參數(shù),你調(diào)用的時(shí)候不需要對(duì)變量取值,這樣看起來(lái)比較直觀(guān),而且方便,如果是指針變量作為參數(shù),那么你有時(shí)候會(huì)不明白這個(gè)函數(shù)到底是對(duì)指針進(jìn)行運(yùn)算,還是對(duì)指針指向的變量空間進(jìn)行運(yùn)算,而且還要取操作。
2、引用訪(fǎng)問(wèn)一個(gè)變量是直接訪(fǎng)問(wèn),而指針是間接訪(fǎng)問(wèn)。引用是一個(gè)變量的別名,本身不單獨(dú)分配自己的內(nèi)存空間,而指針有自己的內(nèi)存空間。引用在開(kāi)始的時(shí)候就綁定到了一個(gè)內(nèi)存空間(開(kāi)始必須賦初值),所以他只能是這個(gè)內(nèi)存空間的名字,而不能改成其他的。
3、用指針來(lái)使用變量時(shí),作實(shí)參,則修改形參能達(dá)到修改實(shí)參的作用。直接用變量則不具有此效果。因?yàn)橹羔樧鲗?shí)參傳遞的是。
指針與引用有什么區(qū)別
1、區(qū)別:引用不能為空,即不存在對(duì)空對(duì)象的引用,指針可以為空,指向空對(duì)象。引用必須初始化,指定對(duì)哪個(gè)對(duì)象的引用,指針不需要。引用初始化后不能改變,指針可以改變所指對(duì)象的值。引用訪(fǎng)問(wèn)對(duì)象是直接訪(fǎng)問(wèn),指針訪(fǎng)問(wèn)對(duì)象是間接訪(fǎng)問(wèn)。
2、指針和引用的區(qū)別如下:引用不可以為空,但指針可以為空。引用不可以改變指向,對(duì)一個(gè)對(duì)象至不渝;但是指針可以改變指向,而指向其它對(duì)象。引用的大小是所指向的變量的大小,因?yàn)橐弥皇且粋€(gè)別名而已;指針是指針本身的大小,4個(gè)字節(jié)。
3、指針與引用之間的首要區(qū)別在于,指針是一個(gè)獨(dú)立的實(shí)體,而引用僅僅是另一個(gè)變量的別名。 使用引用時(shí),我們不需要進(jìn)行解引用操作(使用*符號(hào)),但是指針在使用之前必須進(jìn)行解引用。 引用在定義時(shí)必須被初始化,且僅能被初始化一次,之后不可更改。相比之下,指針可以被重新賦值,因此是可變的。
4、引用是變量的別名,指針是變量的,指針變量存放著那個(gè)變量的 指針是可以做算術(shù)運(yùn)算的,引用不行 指針可以為NULL,也有常指針,二維指針,引用沒(méi)這些 其實(shí)就是變量名與之間的區(qū)別,兩個(gè)除了用法上有些相似,其他沒(méi)什么太大關(guān)系。
5、從現(xiàn)象上看:指針在運(yùn)行時(shí)可以改變其所指向的值,而引用一旦和某個(gè)對(duì)象綁定后就不再改變。引用訪(fǎng)問(wèn)一個(gè)變量是直接訪(fǎng)問(wèn),而指針是間接訪(fǎng)問(wèn)。
C++中指針與引用的區(qū)別
1、指針,全稱(chēng)為指針變量,是用來(lái)存儲(chǔ)內(nèi)存的一種變量。程序中,一般通過(guò)指針來(lái)訪(fǎng)問(wèn)其指向的內(nèi)存中的內(nèi)容(數(shù)據(jù))。引用,是C++中提出來(lái)的一種新的使用變量的方式,即,給實(shí)際變量起個(gè)別名,通過(guò)這個(gè)別名來(lái)引用實(shí)際的變量。標(biāo)準(zhǔn)C中不支持變量的引用。這兩個(gè)概念沒(méi)有任何相關(guān)性。
2、引用訪(fǎng)問(wèn)一個(gè)變量是直接訪(fǎng)問(wèn),而指針是間接訪(fǎng)問(wèn)。引用是一個(gè)變量的別名,本身不單獨(dú)分配自己的內(nèi)存空間,而指針有自己的內(nèi)存空間。引用在開(kāi)始的時(shí)候就綁定到了一個(gè)內(nèi)存空間(開(kāi)始必須賦初值),所以他只能是這個(gè)內(nèi)存空間的名字,而不能改成其他的。
3、在C和C++中,指針與引用是兩種不同的概念,它們?cè)趦?nèi)存操作和變量關(guān)聯(lián)上有著顯著的差異。指針一般指的是某塊內(nèi)存的,通過(guò)這個(gè),我們可以尋址到這塊內(nèi)存。而引用則是一個(gè)變量的別名,類(lèi)似于我們給某人起外號(hào),通過(guò)這個(gè)外號(hào),我們指代的其實(shí)是原名,即原變量。
4、指針:指針的定義:指針作為實(shí)體,是一個(gè)用來(lái)保存一個(gè)內(nèi)存的計(jì)算機(jī)語(yǔ)言中的變量。指針一般出現(xiàn)在比較底層的程序設(shè)計(jì)語(yǔ)言中,如C語(yǔ)言。高層的語(yǔ)言如Java一般避免用指針,而是引用。指針作為數(shù)據(jù)類(lèi)型,可以從一個(gè)函數(shù)類(lèi)型、一個(gè)對(duì)象類(lèi)型或者一個(gè)不完備類(lèi)型中導(dǎo)出。
5、C語(yǔ)言?xún)H存在指針,而C++在此基礎(chǔ)上引入了引用,其功能與指針相似。不少人在學(xué)習(xí)C++時(shí)都會(huì)對(duì)指針與引用的區(qū)別產(chǎn)生疑問(wèn)。以下是對(duì)這一問(wèn)題的總結(jié)。C++中對(duì)象的定義是:一塊可以存儲(chǔ)數(shù)據(jù)并具備某種類(lèi)型的內(nèi)存空間。
關(guān)于本次c語(yǔ)言中引用與指針的區(qū)別是什么和c語(yǔ)言中引用和指針區(qū)別的問(wèn)題分享到這里就結(jié)束了,如果解決了您的問(wèn)題,我們非常高興。
本文鏈接:http:///bian/226503.html