1樓:湛藍水晶
cin.getline就是獲得一個最大長度不超過20個字元的(19或者19以下)的字串,儲存在buffer裡面,這個時候buffer裡面已經儲存了一個字串(例如
"abcde\0",因為c字串是以\0結束的。、然後,將這個字串傳給函式str的時候
while(*str1) //如果str的內容為0,那麼while就不執行了
2樓:匿名使用者
cin.getline(buffer,20);
這裡的原因有兩點:
1 你呼叫的這個函式, 第二個引數你給置為20了char buffer[20];
2 這個陣列的大小就是20了,也就是說你只給分配了20位元組大小的一個陣列
3樓:
getline的使用事項!
getline(buf, num, delim = '\n')
輸入資料長度不足num的,將最後的\n字元利用\0代替。如果輸入字元等於或超過num的只讀取num - 1個字元,並將第num位置使用\0代替
4樓:
這可能是因為buffer定義的時候裡面的內容是不確定的(不以\0結尾)。如果加cin.getline,它會對輸入進行擷取,並且將陣列的最後一位置為\0
關於c指標的題,C語言關於指標的一道題。
1 定義一個int型二維陣列,會在記憶體中分配一段連續的空間,存放這些數。按照你的定義,是8個數,一個int型是4個位元組,所以你定義的陣列一共佔用了32個位元組,這32個位元組的首地址為 0x0064fd38。2 陣列名是這32位元組的首地址,是一個指標,但是可以理解為被const修飾的指標,意思...
關於c 指標的問題
一 int p a 換成int p p a 就出錯了,這是為什麼?答 int p意思是定義一個指標p。記住,這以後p代表的是一個指標了。因此下一句應該寫為p a。二 另外就int p a而言,a返回的不是a的地址嗎,那 p不就等於a的地址了?答 是p等於a的地址。順便說一句,此後的 p中的 號是間接...
c語言空指標野指標通用指標,C語言 空指標
野指標就是不知道指向 或者說不知道指向的記憶體是否可以使用,一般都是剛剛宣告但沒有初始化的指標。空指標不是指向常數0,只指向地址0,即null,其實換句話說,指標的本質就是地址嘛,空指標就是指標本身的值 地址 為0 空指標的作用是防止野指標的出現,因為我們不能知道野指標到底指向 所以我們也無法判斷一...