C語言簡單概念

2022-05-10 03:48:59 字數 2146 閱讀 4364

1樓:13樓小白

*p是一個指標

如果a是一個變數a=3

已經宣告過了

p = a //編譯出錯

*p = a //p指向的變數的值賦值為a,如果p並不指向任何變數則出錯

p = &a //p取a的地址,也就是讓p指向a*p = &a //p指向的指標取a的地址,也就是讓p指向的指標指向a,如果p並不指向任何指標則出錯

如果a是一個陣列

p = a //p指向a陣列的首地址

*p = a //p指向的指標指向a陣列的首地址p = &a //出錯

*p = &a //出錯

2樓:匿名使用者

第一個p=a是錯誤的,因為p是指標變數,只能存地址,不能存資料*p=a 是指將 變數a的指放到 p所指的變數中p=&a是指把a的地址放到指標變數p中,使p指向變數a*p=&a也是錯的,因為*p是指向變數,而&a是地址,明顯錯誤如果a是陣列

p=a是指把陣列a首元素的地址個p ,其中陣列名a代表陣列首地址(這是規定)

*p=a是錯誤的,結果同上上面的解釋

p=&a也是錯的,a已經代表是地址,不用在用&這個取址運算子了最後個也是錯的,理由同上

答了怎麼多,多給點分吧。哈哈

3樓:匿名使用者

p=a 是將a的值3賦給p

*p=a 是指標p指向a的記憶體地址

p=&a &是取地址運算子,取a的地址賦予p*p=&a 是指標p指向a的記憶體地址

陣列的話應該是類推以上的,均指向陣列中第一個資料,陣列中第一個資料的地址(知識有限)

4樓:匿名使用者

1、 p=a 錯誤,指標不能直接賦值;

*p=a 錯誤,指標沒有初始化;

p=&a 正確,取a變數地址賦於指標p;

*p=&a 錯誤,把a的地址(長整型)賦與p所指向的單元;

2、 p=a 正確,把陣列的起始地址賦與p;

*p=a 錯誤,把a的地址(長整型)賦與p所指向的單元;

p=&a 錯誤,a本身為地址,不能再取地址運算;

*p=&a 錯誤,a本身為地址,不能再取,*p指向的單元為一個無效值;

5樓:

比如,int *p;

p 是一個指標,*p是指向p這個地址的值。

p=a,錯

*p=a 對

p=&a對,&a是取a的地址的意思

*p=&a錯

int a【】

p= a 對,a為a【】的首地址,所以*p就是a了後面的錯錯錯。

沒給我加分,你就沒良心。

6樓:查韋茂

你如果定義成 int *p,a=3;

那麼p是一個指向整型的指標,而*p是指標p所指向的那個地址的值p=a (錯誤,整型變數a給指標變數p賦值,型別不匹配)*p=a (你如果按照上面定義,就是錯誤的,原因是p所指向的記憶體地址是不確定的,有可能這塊記憶體正被某個程序使用,強行給它賦值,會引起記憶體錯誤;只有在你保證p所指向的地址是安全的時候,這樣賦值才是正確的)

p=&a(正確,表示指標p指向整型變數a)*p=&a(錯誤,與p=a同理,型別不匹配)對於陣列a而言,陣列名a其實就是一個指標,它指向陣列a的首地址p=a(正確,表示指標p指向陣列a的首地址)*p=a(錯誤,道理同上面,型別不匹配)

p=&a(錯誤,同上,型別不匹配)

*p=&a(錯誤,同上,型別不匹配)

7樓:匿名使用者

*p是指標

它指向記憶體的一個位置(多少我不知道)a變數.

至於&a...我忘了...- -||

8樓:不是很無知

1.p=a是錯誤的,把指標的地址設定為3,這樣編譯不會有錯誤,但是當你去這個地址取值的時候程式肯定會崩潰。*p=a,是讓指標p指向a,p就是a在記憶體中的地址,p的值就是3.

*p=&a是把a的地址賦給p,也就是說p中儲存的是a的地址,實際中可以這樣用。

2.如果a是個陣列,那麼a本身就是陣列的首地址,所以p=a是可以的,p同樣是陣列的首地址。*p=a跟1裡面的那個*p=&a基本意思一致,p=&a是無效的,對一個地址取地址是沒有什麼意義的。

*p=&a同樣也是這樣。

說成這樣,我覺得你應該能理解了,如果再有不明白的可以站內給我發信。

C語言很簡單很簡單的問題,C語言很簡單很簡單的問題

第一個 經過呼叫函式的運算後 沒有返回值 所以c d的值沒變 第二個用不到呼叫函式吧 因為計算機是讀 main的 而且是從main之前找函式 後面的函式 計算機不會讀的 應該輸出10 可能不對 我好久沒玩 c語言了 1.要用指標 改為int t int x,int y,int cp,int dp c...

簡單c語言問題求答,簡單c語言問題求解答。

你把 發上來,才能幫你看,幫你找錯誤吧。一個很簡單的c語言問題,求高手解答,謝謝!scanf 分數 d n score 是錯的,這樣會導致你無法輸入任何資料。不信你可以先給score賦一個初值,然後 printf d score 就會發現score永遠是初值。應該寫成scanf d score 如果...

c語言簡單練習

這個程式基本沒看懂你要做什麼。你的陣列初始化和迴圈賦值有問題,所以出現了你所說的問題。我給你修改了一部分 用於陣列的初始化和迴圈賦值,希望能對你有幫助。int num 100 初始化,似乎可以不用2維陣列 int i,j for i 0 i 100 i 迴圈賦值陣列 j i 獲取陣列上標,也就是最後...