一小段C語言指標的問題謝謝

2022-11-16 03:36:13 字數 908 閱讀 8384

1樓:臨水

你好!「do while中間那一句話」是指這個(*buffer++ = ch)?

按我的想法是:將ch的值賦給指標buffer的下乙個指標;

不過這段**貌似不全,比如buffer是怎麼宣告,是指標還是指標陣列,這其中差別很大的!

估計是指標陣列,那麼整段**的意思就是:

先將ch的值賦予指標陣列*buffer的第乙個元素(*buffer++ = ch);

然後又將ch的值賦予指標陣列*buffer的下乙個元素(即第二個);

如此重複,直到ch!= 13時,*buffer = 0;

明白否?

2樓:匿名使用者

不斷的讀取輸入的字元,並且放入到*buffer裡面,當遇到字元是回車是,退出

也就是 讀取一整行的 輸入

3樓:匿名使用者

你上面的**應該有乙個定義char *buffer; char str; buffer=str; *buffer是乙個指向str的char型指標,buffer表示str的首位址,*buffer表示指向的陣列的第乙個str[0],而*buffer++表示執行完當前語句(*buffer++)後,位址butffer+1,而*buffer就指向了下乙個值,也就是buffer位址移到了下一位(str[1]的位址),因為是迴圈語句,所以該語句一直執行,直到str=13時停止。

4樓:匿名使用者

對於指標buffer,直接用buffer是對buffer本身進行操作,而*buffer是對buffer所指的那個單元進行操作。按你的**的意思,你的buffer應該是指向char陣列,當你對陣列中的乙個單元賦值了,然後buffer++將指標移到下乙個陣列元素的位址去,而*buffer=ch;是將ch的記憶體存到buffer指向的那個陣列單元裡面去

C語言的指標問題

這兩個程式都只有乙個主函式,當你需要呼叫函式的時候,就涉及到引數傳遞的問題了。這時如果你要在呼叫的函式中直接改變實參的值的話,引數傳遞就必須傳遞位址,也就是要用到指標了。如果你只是傳遞引數值的話,在呼叫的函式中,會為形參分配臨時的儲存空間,把實參的值傳遞給它,也就是說傳遞的只是值。可能你是剛開始接觸...

c語言的賦值問題,C語言指標的賦值問題

上面的說法中,都存在錯誤或不足.1.首先 c a b 的意義是把 a 和 b 這兩個變數的內容 5 和 6 相加得 11,再把 11 這個結果值傳送至 變數 c 所在的儲存單元儲存起來 而不是你想像的 將 a 和 b 這兩個變數組合為一個變數作為 c,或者複製一份變數組合再作為 c.當你用int a...

關於c語言中的指標問題,關於c語言中的指標問題。

char p heir 這句話包含了2層意思,一是定義乙個指標變數p,即 char p 二是為指標變數p賦初值,即 p heir 實際是將存放字串 heir 的記憶體位址賦給p 因此這句話實際上等價於 char p p heir char p heir 這個表示定義字元指標變數p,並將存放字串 he...