4 回答

TA貢獻(xiàn)2036條經(jīng)驗(yàn) 獲得超8個(gè)贊
指針是C語言中廣泛使用的一種數(shù)據(jù)類型,指針的*主要出現(xiàn)在兩個(gè)地方
首先是在指針定義時(shí)出現(xiàn)的*,定義時(shí)的 * 相當(dāng)于標(biāo)識(shí)了指針變量,即表明這是一個(gè)指針變量
其次,指針在使用時(shí)也會(huì)出現(xiàn) *,這里的*的取內(nèi)容的意思,即把指針內(nèi)存儲(chǔ)的東西提取出來使用

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超9個(gè)贊
在聲明int *piRand中
*表示這個(gè)變量是int類型的指針
在聲明之外
*可以理解成一個(gè)運(yùn)算符 或者一個(gè)函數(shù)
*和&是一對(duì)逆運(yùn)算
&的意思是讀一個(gè)變量的地址
比如你聲明了int a;&a是a的地址可能是xx1001之類的
可以在調(diào)試?yán)锟匆幌?br/>*的意思是讀一個(gè)地址指向的內(nèi)容
&*piRand==piRand
rand是一個(gè)地址
*rand是指向這個(gè)地址的地址
所以程序出錯(cuò)了
piRand[i]=rand(); 的意思是把rand的地址賦值給piRand[i]

TA貢獻(xiàn)1995條經(jīng)驗(yàn) 獲得超2個(gè)贊
地址有規(guī)律地增長(zhǎng),
int是4個(gè)字節(jié)的位置
所以可以當(dāng)數(shù)組使用,
每次地址增4表示下一個(gè)數(shù)
*是該地址 取數(shù)值
如p是指向 數(shù)i
那么*p就是取p指向的數(shù)的值
piRand[i]=*rand();
piRand[i]表示數(shù)組中的一個(gè)數(shù)字
所以piRand[i]=rand();
加個(gè)*是錯(cuò)的

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超10個(gè)贊
*有多重意義:
1.在聲明變量時(shí),它表示這是一個(gè)指針
2.還表示乘號(hào)
3.在scanf()中表示賦值約束。
4.在printf()中用于動(dòng)態(tài)確定列寬和精度
5.用于間接訪問指針?biāo)赶虻膶?duì)象的值。
而在piRand[i]=*rand();中,不符合以上任何一條。
- 4 回答
- 0 關(guān)注
- 2699 瀏覽
添加回答
舉報(bào)