指針和數(shù)組的關(guān)系 數(shù)組名和指針的區(qū)別?
數(shù)組名和指針的區(qū)別?數(shù)組和指針之間的區(qū)別:數(shù)組名稱確實表示指向數(shù)組第一個地址的指針,但是這個指針非常特殊。它的值(指針的值指指針的地址)不能重寫??梢灾貙懙闹皇撬赶虻膬?nèi)容。換句話說,數(shù)組名只能指向
數(shù)組名和指針的區(qū)別?
數(shù)組和指針之間的區(qū)別:數(shù)組名稱確實表示指向數(shù)組第一個地址的指針,但是這個指針非常特殊。它的值(指針的值指指針的地址)不能重寫。可以重寫的只是它所指向的內(nèi)容。換句話說,數(shù)組名只能指向數(shù)組的第一個地址。如果存在數(shù)組char a[],則如果出現(xiàn)a=a,則這是一個編譯錯誤。對于普通指針,這是可能的。例如,如果有一個數(shù)組char a,那么定義char*P=a然后P=p1是合法的,這意味著指針P指向&A[1]。它們之間的第二個區(qū)別是,每當(dāng)使用數(shù)組名的指針時,系統(tǒng)都會傳入數(shù)組的信息,而普通的指針只是一個4字節(jié)的整數(shù),例如:
char a[5]char*P=a//指針a和指針P都指向數(shù)組a cout<< sizeof(a)< “#”<< sizeof(P)<<運(yùn)行結(jié)果是“5######4”
C語言中的函數(shù)指針和指針函數(shù),有什么區(qū)別嗎?該如何理解?
函數(shù)指針和指針函數(shù)之間的差異:
1。名稱解析。這兩個名詞都是修飾名詞,可以在中間加上一個助詞“de”,稍加擴(kuò)展?,F(xiàn)在,函數(shù)的指針和指針的函數(shù)更加清晰了?,F(xiàn)在,我們可以通過添加一些修飾符來再次展開—指向函數(shù)的指針和返回值為指針的函數(shù)基本上都很清楚。
2. 格式。
Type(*pfurc)(Type para)--函數(shù)指針
Type*func(Type para)--指針函數(shù)
3。首先,指針函數(shù)是一個普通函數(shù),但返回值是指針(實際上是地址)。許多人認(rèn)為它是神秘的,因為他們害怕指針
!4. 函數(shù)指針。這有點復(fù)雜。首先,*與具有最高優(yōu)先級的pfunc組合,因此pfunc是指針。同時,指針后面有一對圓括號,里面有參數(shù),與函數(shù)參數(shù)的格式相同。因此,指針就是函數(shù)指針,指針前面有一個類型返回值類型!有些人覺得這里很奇怪。指針怎么會有返回值?
5. 指針有一個返回值,因為當(dāng)指針被使用時,它將指向一個與它自己的格式相似的函數(shù)。因此,指針的返回值和參數(shù)格式?jīng)Q定了它指向的函數(shù)的格式
!6. 如果你想精通函數(shù)指針,為什么不呢?你必須精通它,因為當(dāng)你使用函數(shù)指針時,它反映了C語言的綁定特性,也是C語言多態(tài)性的雛形!