4 回答

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

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

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

TA貢獻1811條經(jīng)驗 獲得超6個贊
*有多重意義:
1.在聲明變量時,它表示這是一個指針
2.還表示乘號
3.在scanf()中表示賦值約束。
4.在printf()中用于動態(tài)確定列寬和精度
5.用于間接訪問指針所指向的對象的值。
而在piRand[i]=*rand();中,不符合以上任何一條。
- 4 回答
- 0 關(guān)注
- 524 瀏覽
添加回答
舉報